diff --git a/CLAUDE.md b/CLAUDE.md index 465f3d0b..1e55ba5f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,6 +38,7 @@ See README.md for the complete overview. Key points for Claude: - See `tools/@new` for an example of the files in each folder - See `tools/README.md` for an explanation of the feature folder approach +- For brew formulae without config, see `tools/eza/` or `tools/logcli/` as examples ### Symlink Management diff --git a/tools/logcli/install.bash b/tools/logcli/install.bash new file mode 100755 index 00000000..28e5ead2 --- /dev/null +++ b/tools/logcli/install.bash @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +source "${DOTFILES}/features/install/utils.bash" +source "${DOTFILES}/tools/logcli/utils.bash" # source last to avoid env var overrides + +install_and_symlink \ + "${TOOL_LOWER}" \ + "${TOOL_UPPER}" \ + "${TOOL_COMMAND}" \ + "${TOOL_EMOJI}" \ + "brew install --formula ${TOOL_PACKAGE}" \ + "brew list --version ${TOOL_PACKAGE}" \ + "parse_version" diff --git a/tools/logcli/uninstall.bash b/tools/logcli/uninstall.bash new file mode 100755 index 00000000..a2e42c6f --- /dev/null +++ b/tools/logcli/uninstall.bash @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -euo pipefail + +source "${DOTFILES}/features/uninstall/utils.bash" +source "${DOTFILES}/tools/logcli/utils.bash" # source last to avoid env var overrides + +uninstall_and_unlink \ + "${TOOL_LOWER}" \ + "${TOOL_UPPER}" \ + "${TOOL_COMMAND}" \ + "${TOOL_EMOJI}" \ + "brew uninstall --formula ${TOOL_PACKAGE}" diff --git a/tools/logcli/update.bash b/tools/logcli/update.bash new file mode 100755 index 00000000..a876998e --- /dev/null +++ b/tools/logcli/update.bash @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +source "${DOTFILES}/features/update/utils.bash" +source "${DOTFILES}/tools/logcli/utils.bash" # source last to avoid env var overrides + +update_and_symlink \ + "${TOOL_LOWER}" \ + "${TOOL_UPPER}" \ + "${TOOL_COMMAND}" \ + "${TOOL_EMOJI}" \ + "brew upgrade --formula ${TOOL_PACKAGE}" \ + "brew list --version ${TOOL_PACKAGE}" \ + "parse_version" \ + "${DOTFILES}/tools/${TOOL_LOWER}/install.bash" diff --git a/tools/logcli/utils.bash b/tools/logcli/utils.bash new file mode 100755 index 00000000..d3d7fb5a --- /dev/null +++ b/tools/logcli/utils.bash @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -euo pipefail + +export TOOL_LOWER="logcli" +export TOOL_UPPER="LogCLI" +export TOOL_COMMAND="logcli" +export TOOL_PACKAGE="logcli" +export TOOL_EMOJI="📊" +export TOOL_CONFIG_DIR="${HOME}/.config/${TOOL_LOWER}" + +parse_version() { + local raw_version="${1}" + local prefix_brew_formula="${TOOL_PACKAGE} " + + # Everything after the prefix + printf "${raw_version#"${prefix_brew_formula}"}" +}