From 9d7a1acd30a2f7c4d7d167c7013f852ee45b499d Mon Sep 17 00:00:00 2001 From: Ismo Vuorinen Date: Wed, 4 Feb 2026 02:59:26 +0200 Subject: [PATCH] refactor(go): inline packages and drop unused dependencies Replace external golang-packages config file with an inline array, remove 6 unused packages (actionlint, antidot, gopls, templ, html2md, pup), and update documentation to match cargo script style. --- config/asdf/golang-packages | 29 ------------------------- scripts/install-go-packages.md | 12 ++++++++--- scripts/install-go-packages.sh | 39 ++++++++++++---------------------- 3 files changed, 23 insertions(+), 57 deletions(-) delete mode 100644 config/asdf/golang-packages diff --git a/config/asdf/golang-packages b/config/asdf/golang-packages deleted file mode 100644 index 7954aef..0000000 --- a/config/asdf/golang-packages +++ /dev/null @@ -1,29 +0,0 @@ -// These are golang packages I use, -// so they should be available with all versions - -// Git Profile allows you to switch between user profiles in git repos -github.com/dotzero/git-profile@latest -// An extensible command line tool or library to format yaml files. -github.com/google/yamlfmt/cmd/yamlfmt@latest -// Parsing HTML at the command line -github.com/ericchiang/pup@latest -// HTML to Markdown converter -github.com/suntong/html2md@latest -// cheat allows you to create and view interactive cheatsheets on the cli. -github.com/cheat/cheat/cmd/cheat@latest -// Render markdown on the CLI, with pizzazz! 💅 -github.com/charmbracelet/glow@latest -// Static checker for GitHub Actions workflow files -github.com/rhysd/actionlint/cmd/actionlint@latest -// Cleans up your $HOME from those pesky dotfiles -github.com/doron-cohen/antidot@latest -// FZF is a general-purpose command-line fuzzy finder. -github.com/junegunn/fzf@latest -// gopls, the Go language server -golang.org/x/tools/gopls@latest -// A language for writing HTML user interfaces in Go. -github.com/a-h/templ/cmd/templ@latest -// A tool for glamorous shell scripts 🎀 -github.com/charmbracelet/gum@latest -// A terminal session manager -github.com/joshmedeski/sesh/v2@latest diff --git a/scripts/install-go-packages.md b/scripts/install-go-packages.md index 94d0044..bc938bb 100644 --- a/scripts/install-go-packages.md +++ b/scripts/install-go-packages.md @@ -1,6 +1,6 @@ # install-go-packages -Installs Go binaries defined in `config/go/packages`. +Install Go packages defined in the script. ## Usage @@ -8,5 +8,11 @@ Installs Go binaries defined in `config/go/packages`. scripts/install-go-packages.sh ``` -The script uses `go install` for each package path listed in the configuration -file. +## What it does + +1. Checks that `go` is available. +2. Installs each package from the inline list using `go install`. +3. Runs post-install steps (e.g. generating shell completions). +4. Clears the Go module and build caches. + +To add or remove packages, edit the `packages` array in `scripts/install-go-packages.sh`. diff --git a/scripts/install-go-packages.sh b/scripts/install-go-packages.sh index 25aaff4..1707e0d 100755 --- a/scripts/install-go-packages.sh +++ b/scripts/install-go-packages.sh @@ -11,31 +11,25 @@ msgr run "Installing go packages" ! x-have "go" && msgr err "go hasn't been installed yet." && exit 0 -[[ -z "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" ]] \ - && ASDF_GOLANG_DEFAULT_PACKAGES_FILE="$DOTFILES/config/asdf/golang-packages" - -# Packages are defined in $DOTFILES/config/asdf/golang-packages, one per line -# Skip comments and empty lines -packages=() -if [[ -f "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" ]]; then - while IFS= read -r line; do - # Skip comments - if [[ ${line:0:1} == "#" ]]; then continue; fi - if [[ ${line:0:1} == "/" ]]; then continue; fi - # Skip empty lines - if [[ -z "$line" ]]; then continue; fi - packages+=("$line") - done < "$ASDF_GOLANG_DEFAULT_PACKAGES_FILE" -fi +# Go packages to install +packages=( + github.com/dotzero/git-profile@latest # Switch between git user profiles + github.com/google/yamlfmt/cmd/yamlfmt@latest # Format yaml files + github.com/cheat/cheat/cmd/cheat@latest # Interactive cheatsheets on the CLI + github.com/charmbracelet/glow@latest # Render markdown on the CLI + github.com/junegunn/fzf@latest # General-purpose fuzzy finder + github.com/charmbracelet/gum@latest # Glamorous shell scripts + github.com/joshmedeski/sesh/v2@latest # Terminal session manager +) # Function to install go packages install_packages() { for pkg in "${packages[@]}"; do - # Trim spaces - pkg=${pkg// /} - # Skip comments - if [[ ${pkg:0:1} == "#" ]]; then continue; fi + # Strip inline comments and trim whitespace + pkg="${pkg%%#*}" + pkg="${pkg// /}" + [[ -z "$pkg" ]] && continue msgr nested "Installing go package: $pkg" go install "$pkg" @@ -52,11 +46,6 @@ post_install() git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/_git-profile" \ && msgr run_done "Installed completions for git-profile" fi - - if command -v antidot &> /dev/null; then - antidot update \ - && msgr run_done "Updated antidot database" - fi } # Function to clear go cache