mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 11:14:08 +00:00
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# @description Install Go packages
|
|
#
|
|
# shellcheck source=shared.sh
|
|
source "$DOTFILES/config/shared.sh"
|
|
|
|
# Enable verbosity with VERBOSE=1
|
|
VERBOSE="${VERBOSE:-0}"
|
|
|
|
msgr run "Installing go packages"
|
|
|
|
! x-have "go" && msgr err "go hasn't been installed yet." && exit 0
|
|
|
|
packages=(
|
|
# A shell parser, formatter, and interpreter with bash support; includes shfmt
|
|
mvdan.cc/sh/v3/cmd/shfmt@latest
|
|
# sysadmin/scripting utilities, distributed as a single binary
|
|
github.com/skx/sysbox@latest
|
|
# 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
|
|
# simple terminal UI for git commands
|
|
github.com/jesseduffield/lazygit@latest
|
|
# Cleans up your $HOME from those pesky dotfiles
|
|
github.com/doron-cohen/antidot@latest
|
|
)
|
|
|
|
# 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
|
|
|
|
msgr nested "Installing go package: $pkg"
|
|
go install "$pkg"
|
|
echo ""
|
|
done
|
|
}
|
|
|
|
# Function to install completions and run actions for selected packages
|
|
post_install()
|
|
{
|
|
msgr run "Installing completions for selected packages"
|
|
|
|
if command -v git-profile &> /dev/null; then
|
|
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
|
|
clear_go_cache()
|
|
{
|
|
msgr run "Clearing go cache"
|
|
go clean -cache -modcache
|
|
}
|
|
|
|
main()
|
|
{
|
|
install_packages
|
|
post_install
|
|
clear_go_cache
|
|
msgr run_done "Done"
|
|
}
|
|
|
|
main "$@"
|