diff --git a/README.md b/README.md index a708c4b..e2f1377 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,18 @@ The main objectives of this project are to: ## Installation -Run the following command from the command-line: +HamPack is a CoreDesktop sibling project. With CoreDesktop installed, run: ``` -wget -qO- https://gitea.young.computer/david/hampack/raw/branch/main/install.sh | bash +sibling add https://gitea.young.computer/david/HamPack.git ``` +This clones HamPack into `~/.local/share/siblings/HamPack` and runs its `install.sh`. From then on, CoreDesktop's `update` command pulls HamPack and runs its `update.sh`, so HamPack stays current along with the rest of the system. Re-run the `sibling add` command above to repair an install. + +To uninstall HamPack and the applications it installed, run `hampackremove`. + +If you installed HamPack before it became a sibling project, run the `sibling add` command above once. It moves HamPack to the new location and removes the old update hooks. + ## What Get's Installed This is the long list of stuff that gets installed... diff --git a/binaries.conf b/binaries.conf index b55f2c4..ed6004d 100644 --- a/binaries.conf +++ b/binaries.conf @@ -7,7 +7,7 @@ # exec= - command for the .desktop Exec= field (defaults to install path if omitted) # gui=true - set if a .desktop file should be generated. No .desktop file is created if false # comment= - description for the .desktop file -# icon= - icon theme name (e.g. wsjtx) or path to icon file (e.g. $HOME/.local/share/HamPack/icons/wsjtx.png) +# icon= - icon theme name (e.g. wsjtx) or path to icon file (e.g. $HAMPACK_DIR/desktop/icons/wsjtx.png) # categories= - desktop categories (default: HamRadio;) # # Example: @@ -34,6 +34,6 @@ install=$HOME/.local/bin/paracon_1.3.0.pyz gui=true comment=Weak signal digital modes for amateur radio exec=python $HOME/.local/bin/paracon_1.3.0.pyz -icon=$HOME/.local/share/HamPack/desktop/icons/paracon.png +icon=$HAMPACK_DIR/desktop/icons/paracon.png categories=HamRadio; diff --git a/compile.conf b/compile.conf index 445af07..50328a7 100644 --- a/compile.conf +++ b/compile.conf @@ -14,7 +14,7 @@ version=1.8.1 git=https://github.com/wb2osz/direwolf.git install=$HOME/.local/bin/direwolf -steps=mkdir build, cd build, cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local, make -j4, sudo make install, sudo udevadm control --reload-rules, mkdir -p $HOME/.local/state/HamPack/conf.d, cp -n $HOME/.local/share/HamPack/conf.d/direwolf.conf $HOME/.local/state/HamPack/conf.d/ +steps=mkdir build, cd build, cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local, make -j4, sudo make install, sudo udevadm control --reload-rules, mkdir -p $HOME/.local/state/HamPack/conf.d, cp -n $HAMPACK_DIR/conf.d/direwolf.conf $HOME/.local/state/HamPack/conf.d/ [QtTermTCP] version=0.39 @@ -46,7 +46,7 @@ steps=make, mv dump1090 $HOME/.local/bin/dump1090 version=1.0-beta229 wget=https://www.ka2ddo.org/ka2ddo/YAAC.zip install=$HOME/.local/bin/yaac/YAAC.jar -desktop=$HOME/.local/share/HamPack/desktop/yaac.desktop +desktop=$HAMPACK_DIR/desktop/yaac.desktop gui=true steps=rm -rf $HOME/.local/bin/yaac, mkdir -p $HOME/.local/bin/yaac, mv /tmp/hampack-build/yaac/* $HOME/.local/bin/yaac/ @@ -54,16 +54,16 @@ steps=rm -rf $HOME/.local/bin/yaac, mkdir -p $HOME/.local/bin/yaac, mv /tmp/hamp version=1.10.12 git=https://github.com/Waffleslop/POTACAT.git install=$HOME/.local/bin/POTACAT.AppImage -desktop=$HOME/.local/share/HamPack/desktop/potacat.desktop +desktop=$HAMPACK_DIR/desktop/potacat.desktop gui=true -steps=bash $HOME/.local/share/HamPack/patch-potacat.sh, npm install, npm run dist:linux, mv dist/*.AppImage $HOME/.local/bin/POTACAT.AppImage +steps=bash $HAMPACK_DIR/patch-potacat.sh, npm install, npm run dist:linux, mv dist/*.AppImage $HOME/.local/bin/POTACAT.AppImage [js8call-improved] name=JS8Call version=3.0.3 git=https://github.com/JS8Call-improved/JS8Call-improved.git install=$HOME/.local/bin/JS8Call -desktop=$HOME/.local/share/HamPack/desktop/js8call.desktop +desktop=$HAMPACK_DIR/desktop/js8call.desktop gui=true steps=mkdir build, cd build, cmake -D CMAKE_INSTALL_PREFIX=/opt/JS8Call-improved .., cmake --build . -- -j 4, mv JS8Call $HOME/.local/bin/JS8Call @@ -71,4 +71,4 @@ steps=mkdir build, cd build, cmake -D CMAKE_INSTALL_PREFIX=/opt/JS8Call-improved version=0.14.13 git=https://github.com/chrissnell/graywolf.git install=$HOME/.local/bin/graywolf -steps=getent group dialout || sudo groupadd dialout, make all, install -m 755 bin/graywolf $HOME/.local/bin/graywolf, install -m 755 bin/graywolf-modem $HOME/.local/bin/graywolf-modem, mkdir -p $HOME/.local/share/graywolf, sed "s|HAMPACK_USER|$USER|g; s|HAMPACK_HOME|$HOME|g" $HOME/.local/share/HamPack/systemd/graywolf.service > /tmp/graywolf.service, sudo install -m 644 /tmp/graywolf.service /etc/systemd/system/graywolf.service, sudo systemctl daemon-reload, sudo systemctl enable graywolf +steps=getent group dialout || sudo groupadd dialout, make all, install -m 755 bin/graywolf $HOME/.local/bin/graywolf, install -m 755 bin/graywolf-modem $HOME/.local/bin/graywolf-modem, mkdir -p $HOME/.local/share/graywolf, sed "s|HAMPACK_USER|$USER|g; s|HAMPACK_HOME|$HOME|g" $HAMPACK_DIR/systemd/graywolf.service > /tmp/graywolf.service, sudo install -m 644 /tmp/graywolf.service /etc/systemd/system/graywolf.service, sudo systemctl daemon-reload, sudo systemctl enable graywolf diff --git a/desktop/js8call.desktop b/desktop/js8call.desktop index 83a778a..7e1ef95 100755 --- a/desktop/js8call.desktop +++ b/desktop/js8call.desktop @@ -2,7 +2,7 @@ Name=JS8Call Comment=Ham Radio real time chat over HF Exec=$HOME/.local/bin/JS8Call -Icon=$HOME/.local/share/HamPack/desktop/icons/js8call_icon.png +Icon=$HAMPACK_DIR/desktop/icons/js8call_icon.png Type=Application Categories=HamRadio;Utility; Terminal=false diff --git a/desktop/potacat.desktop b/desktop/potacat.desktop index 1f8cee2..09b8792 100755 --- a/desktop/potacat.desktop +++ b/desktop/potacat.desktop @@ -2,7 +2,7 @@ Name=POTACAT Comment=Amateur radio spot aggregator with CAT control, QSO logging, and panadapter integration Exec=$HOME/.local/bin/POTACAT.AppImage -Icon=$HOME/.local/share/HamPack/desktop/icons/potacat.png +Icon=$HAMPACK_DIR/desktop/icons/potacat.png Type=Application Categories=HamRadio;Utility; Terminal=false diff --git a/desktop/qttermtcp.desktop b/desktop/qttermtcp.desktop index b5472e6..bf271b5 100755 --- a/desktop/qttermtcp.desktop +++ b/desktop/qttermtcp.desktop @@ -2,7 +2,7 @@ Name=QtTermTCP Comment=TCP Terminal Exec=$HOME/.local/bin/QtTermTCP -Icon=$HOME/.local/share/HamPack/desktop/icons/qttermtcp.png +Icon=$HAMPACK_DIR/desktop/icons/qttermtcp.png Type=Application Categories=HamRadio;Utility; Terminal=false diff --git a/desktop/yaac.desktop b/desktop/yaac.desktop index 3625ad2..c407337 100755 --- a/desktop/yaac.desktop +++ b/desktop/yaac.desktop @@ -2,7 +2,7 @@ Name=YAAC Comment=Yet another aprs client Exec=java -jar $HOME/.local/bin/yaac/YAAC.jar -Icon=$HOME/.local/share/HamPack/desktop/icons/yaaclogo.png +Icon=$HAMPACK_DIR/desktop/icons/yaaclogo.png Type=Application Categories=HamRadio;Utility; Terminal=false diff --git a/hampackrefresh b/hampackrefresh deleted file mode 100755 index becddfd..0000000 --- a/hampackrefresh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Print the logo -print_logo() { - cat << "EOF" - - - ██╗ ██╗ █████╗ ███╗ ███╗██████╗ █████╗ ██████╗██╗ ██╗ - ██║ ██║██╔══██╗████╗ ████║██╔══██╗██╔══██╗██╔════╝██║ ██╔╝ - ███████║███████║██╔████╔██║██████╔╝███████║██║ █████╔╝ - ██╔══██║██╔══██║██║╚██╔╝██║██╔═══╝ ██╔══██║██║ ██╔═██╗ - ██║ ██║██║ ██║██║ ╚═╝ ██║██║ ██║ ██║╚██████╗██║ ██╗ - ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ - - -EOF -} - -# Clear screen and show logo -clear -print_logo - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -echo "Let's ensure we get the latest changes to HamPack..." -git -C "$HAMPACK_DIR" pull - -echo "Running HamPack installer..." -bash "$HAMPACK_DIR/install.sh" diff --git a/hampackremove b/hampackremove index f7a97a1..19d1b2b 100755 --- a/hampackremove +++ b/hampackremove @@ -64,6 +64,7 @@ echo "Removing HamPack scripts and binaries..." rm -f ~/.local/bin/hampackrefresh rm -f ~/.local/bin/hampackupdate rm -f ~/.local/bin/hampackcheck +rm -f ~/.local/bin/hampackremove rm -f ~/.local/bin/dx.py # Uninstall not1mm @@ -170,6 +171,15 @@ update-desktop-database "$HOME/.local/share/applications/" 2>/dev/null || true echo "Removing HamPack state and data..." rm -rf ~/.local/state/HamPack rm -rf ~/.local/share/HamPack +rm -f ~/.local/share/coredesktop/updates.d/[0-9][0-9][0-9]-hampack-* + +# Remove the sibling clone, so CoreDesktop's `update` stops updating HamPack +for dir in ~/.local/share/siblings/*/; do + [ -d "$dir/.git" ] || continue + if [[ "$(git -C "$dir" remote get-url origin 2>/dev/null)" =~ /[Hh]am[Pp]ack(\.git)?/?$ ]]; then + rm -rf "$dir" + fi +done echo "" echo "HamPack has been removed." diff --git a/hampackupdate b/hampackupdate deleted file mode 100755 index 5b4929f..0000000 --- a/hampackupdate +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -print_logo() { - cat << "EOF" - - - ██╗ ██╗ █████╗ ███╗ ███╗██████╗ █████╗ ██████╗██╗ ██╗ - ██║ ██║██╔══██╗████╗ ████║██╔══██╗██╔══██╗██╔════╝██║ ██╔╝ - ███████║███████║██╔████╔██║██████╔╝███████║██║ █████╔╝ - ██╔══██║██╔══██║██║╚██╔╝██║██╔═══╝ ██╔══██║██║ ██╔═██╗ - ██║ ██║██║ ██║██║ ╚═╝ ██║██║ ██║ ██║╚██████╗██║ ██╗ - ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ - - -EOF -} - -clear -print_logo - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -for updater in "$HAMPACK_DIR/updates.d/"[0-9][0-9][0-9]-*; do - [ -f "$updater" ] || continue - ( - source "$updater" - if is_installed; then - run_update - fi - ) -done - -echo "Done." diff --git a/install-binaries.sh b/install-binaries.sh index 983e71a..70f77ea 100755 --- a/install-binaries.sh +++ b/install-binaries.sh @@ -2,7 +2,9 @@ # # Purpose: Download and install pre-built binaries from binaries.conf -CONF_FILE="${HAMPACK_BINARIES_CONF:-$HOME/.local/share/HamPack/binaries.conf}" +HAMPACK_DIR="${HAMPACK_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" +export HAMPACK_DIR +CONF_FILE="${HAMPACK_BINARIES_CONF:-$HAMPACK_DIR/binaries.conf}" TMP_DIR="/tmp/hampack-build" VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions" diff --git a/install-compiled.sh b/install-compiled.sh index 02d16fd..4b3ed9f 100755 --- a/install-compiled.sh +++ b/install-compiled.sh @@ -2,7 +2,9 @@ # # Purpose : Compile and install applications from compile.conf -CONF_FILE="${HAMPACK_COMPILE_CONF:-$HOME/.local/share/HamPack/compile.conf}" +HAMPACK_DIR="${HAMPACK_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" +export HAMPACK_DIR +CONF_FILE="${HAMPACK_COMPILE_CONF:-$HAMPACK_DIR/compile.conf}" TMP_DIR="/tmp/hampack-build" VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions" @@ -102,7 +104,7 @@ generate_desktop() { local desktop="$1" local tmp_desktop="/tmp/$(basename "$desktop")" - sed "s|\$HOME|$HOME|g" "$desktop" > "$tmp_desktop" + sed "s|\$HAMPACK_DIR|$HAMPACK_DIR|g; s|\$HOME|$HOME|g" "$desktop" > "$tmp_desktop" echo "$tmp_desktop" } diff --git a/install.sh b/install.sh index b33aa5b..7fb8c36 100755 --- a/install.sh +++ b/install.sh @@ -1,6 +1,6 @@ -#!/bin/bash -i +#!/bin/bash # -# Purpose : HamPack installer +# Purpose : Install HamPack (run by CoreDesktop's `sibling add`) # Print the logo print_logo() { @@ -24,83 +24,33 @@ EOF # --- Main --- set -e -clear + +SELF="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +COREDESKTOP="$HOME/.local/share/coredesktop" +LEGACY_DIR="$HOME/.local/share/HamPack" + +clear || true print_logo -if [ ! -d "$HOME/.local/share/coredesktop" ]; then +if [ ! -d "$COREDESKTOP" ]; then echo "HamPack requires CoreDesktop to be installed first." echo "Please install CoreDesktop: https://coredesktop.federated.computer" exit 1 fi -cd ~ - -echo "Getting the latest version of HamPack..." -rm -rf ~/.local/share/HamPack -git clone https://gitea.young.computer/david/HamPack.git ~/.local/share/HamPack > /dev/null - -cd ~/.local/share/HamPack +# HamPack used to clone itself to ~/.local/share/HamPack and copy its own hooks +# into CoreDesktop's updates.d. It now lives wherever `sibling` cloned it. +if [ -d "$LEGACY_DIR/.git" ] && [ "$LEGACY_DIR" != "$SELF" ]; then + echo "Removing the old HamPack install at $LEGACY_DIR..." + rm -rf "$LEGACY_DIR" +fi +rm -f "$COREDESKTOP"/updates.d/[0-9][0-9][0-9]-hampack-* echo "Setting up sudo..." -. sudo.sh +# Remove the temporary sudoers file however this script exits +trap 'sudo rm -f /etc/sudoers.d/hampack' EXIT +bash "$SELF/sudo.sh" -mkdir -p ~/.local/bin -sudo rm -f ~/.local/bin/hampackrefresh ~/.local/bin/hampackupdate ~/.local/bin/hampackremove -cp ~/.local/share/HamPack/hampackrefresh ~/.local/bin/hampackrefresh -cp ~/.local/share/HamPack/hampackupdate ~/.local/bin/hampackupdate -cp ~/.local/share/HamPack/hampackremove ~/.local/bin/hampackremove +bash "$SELF/update.sh" -# Source utility functions -source utils.sh - -# Source package list -if [ ! -f "packages.conf" ]; then - echo "Error: packages.conf not found!" - exit 1 -fi -source packages.conf - -echo "Installing system utilities..." -install_packages "${UTILITIES[@]}" - -echo "Installing applications..." -install_packages "${APPLICATIONS[@]}" - -cd ~/.local/share/HamPack - -echo "Installing Flatpak applications..." -. install-flatpaks.sh - -echo "Installing stand-alone compiled applications..." -. install-compiled.sh - -cd ~/.local/share/HamPack - -echo "Installing Windows-only applications..." -. install-windows-apps.sh - -echo "Installing not1mm..." -curl -LsSf uvx.sh/not1mm/install.sh | sh - -echo "Installing dx.py..." -wget -q https://raw.githubusercontent.com/HB9VQQ/dx.py/main/dx.py -O "$HOME/.local/bin/dx.py" -chmod +x "$HOME/.local/bin/dx.py" - -echo "Installing JS8Call desktop file..." -mkdir -p ~/.local/share/applications -sed "s|\$HOME|$HOME|g" ~/.local/share/HamPack/desktop/js8call.desktop \ - > ~/.local/share/applications/js8call.desktop - -echo "Updating desktop database..." -update-desktop-database "$HOME/.local/share/applications/" - -echo "Registering HamPack with coredesktop updater..." -for hook in ~/.local/share/HamPack/updates.d/[0-9][0-9][0-9]-hampack*; do - name="$(basename "$hook")" - rm -f ~/.local/share/coredesktop/updates.d/"$name" - install -Dm755 "$hook" ~/.local/share/coredesktop/updates.d/"${name}.sh" -done - -sudo rm /etc/sudoers.d/hampack - -echo "HamPack is installed. You may want to restart existing applications when convenient." \ No newline at end of file +echo "HamPack is installed. You may want to restart existing applications when convenient." diff --git a/update.sh b/update.sh new file mode 100644 index 0000000..58fc5cf --- /dev/null +++ b/update.sh @@ -0,0 +1,84 @@ +#!/bin/bash +# +# Purpose : Keep HamPack current (run by CoreDesktop's `update`, and by install.sh) + +SELF="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +COREDESKTOP="$HOME/.local/share/coredesktop" +source "$COREDESKTOP/utils.sh" + +# Config files and build steps refer to files in this repo through $HAMPACK_DIR +export HAMPACK_DIR="$SELF" + +FAILED=() + +# Run one update step; a failure is reported but doesn't stop the later steps +step() { + local name="$1" + shift + echo "→ $name..." + if ! "$@"; then + echo "✗ $name failed." + FAILED+=("$name") + fi +} + +remove_stale_files() { + # The HamPack GUI app was removed + rm -f "$HOME/.local/bin/hampack" + rm -f "$HOME/.local/share/applications/hampack.desktop" + # Replaced by CoreDesktop's `update` and `sibling add` + rm -f "$HOME/.local/bin/hampackupdate" "$HOME/.local/bin/hampackrefresh" + # Hooks from before HamPack was a sibling; 71-siblings.sh now runs this script + rm -f "$COREDESKTOP"/updates.d/[0-9][0-9][0-9]-hampack-* +} + +install_tools() { + mkdir -p "$HOME/.local/bin" + install_script "$SELF/hampackremove" "$HOME/.local/bin/hampackremove" +} + +install_hampack_packages() { + source "$SELF/packages.conf" + install_packages "${UTILITIES[@]}" && install_packages "${APPLICATIONS[@]}" +} + +install_not1mm() { + if command -v uv &> /dev/null && uv tool list 2> /dev/null | grep -q '^not1mm '; then + uv tool upgrade not1mm + else + curl -LsSf uvx.sh/not1mm/install.sh | sh + fi +} + +install_dxpy() { + wget -q https://raw.githubusercontent.com/HB9VQQ/dx.py/main/dx.py -O "$HOME/.local/bin/dx.py" && + chmod +x "$HOME/.local/bin/dx.py" +} + +install_desktop_files() { + mkdir -p "$HOME/.local/share/applications" + sed "s|\$HAMPACK_DIR|$SELF|g; s|\$HOME|$HOME|g" "$SELF/desktop/js8call.desktop" \ + > "$HOME/.local/share/applications/js8call.desktop" && + update-desktop-database "$HOME/.local/share/applications/" +} + +# --- Main --- + +echo "Updating HamPack..." + +step "Removing stale HamPack files" remove_stale_files +step "Installing HamPack tools" install_tools +step "Installing HamPack packages" install_hampack_packages +step "Installing Flatpak applications" bash "$SELF/install-flatpaks.sh" +step "Installing compiled applications" bash "$SELF/install-compiled.sh" +step "Installing Windows applications" bash "$SELF/install-windows-apps.sh" +step "Installing not1mm" install_not1mm +step "Installing dx.py" install_dxpy +step "Installing desktop files" install_desktop_files + +if (( ${#FAILED[@]} > 0 )); then + echo "HamPack updated, with errors in: ${FAILED[*]}" + exit 1 +fi + +echo "✓ HamPack updated." diff --git a/updates.d/100-hampack-pull b/updates.d/100-hampack-pull deleted file mode 100644 index d9a0271..0000000 --- a/updates.d/100-hampack-pull +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/100-hampack-pull - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -d "$HAMPACK_DIR" ]] -} - -run_update() { - echo "→ Pulling latest HamPack..." - git -C "$HAMPACK_DIR" pull --ff-only - echo "✓ HamPack pulled." -} diff --git a/updates.d/105-hampack-cleanup b/updates.d/105-hampack-cleanup deleted file mode 100755 index 55c0153..0000000 --- a/updates.d/105-hampack-cleanup +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/105-hampack-cleanup - -is_installed() { - [[ -f "$HOME/.local/bin/hampack" ]] -} - -run_update() { - echo "→ Removing stale HamPack app..." - rm -f "$HOME/.local/bin/hampack" - rm -f "$HOME/.local/share/applications/hampack.desktop" - echo "✓ Stale HamPack app removed." -} diff --git a/updates.d/110-hampack-tools b/updates.d/110-hampack-tools deleted file mode 100644 index 375cfbb..0000000 --- a/updates.d/110-hampack-tools +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/110-hampack-tools - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -d "$HAMPACK_DIR" ]] -} - -run_update() { - echo "→ Updating HamPack tools..." - cp "$HAMPACK_DIR/hampackrefresh" "$HOME/.local/bin/hampackrefresh" - cp "$HAMPACK_DIR/hampackupdate" "$HOME/.local/bin/hampackupdate" - cp "$HAMPACK_DIR/hampackremove" "$HOME/.local/bin/hampackremove" - echo "✓ HamPack tools updated." -} diff --git a/updates.d/120-hampack-packages b/updates.d/120-hampack-packages deleted file mode 100644 index 1e9e422..0000000 --- a/updates.d/120-hampack-packages +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/120-hampack-packages - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -f "$HAMPACK_DIR/packages.conf" ]] -} - -run_update() { - echo "→ Updating HamPack packages..." - source "$HAMPACK_DIR/utils.sh" - source "$HAMPACK_DIR/packages.conf" - install_packages "${UTILITIES[@]}" - install_packages "${APPLICATIONS[@]}" - echo "✓ HamPack packages updated." -} diff --git a/updates.d/130-hampack-flatpaks b/updates.d/130-hampack-flatpaks deleted file mode 100644 index be29dc3..0000000 --- a/updates.d/130-hampack-flatpaks +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/130-hampack-flatpaks - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -d "$HAMPACK_DIR" ]] && command -v flatpak &>/dev/null -} - -run_update() { - echo "→ Updating HamPack Flatpaks..." - bash "$HAMPACK_DIR/install-flatpaks.sh" - echo "✓ HamPack Flatpaks updated." -} diff --git a/updates.d/140-hampack-compiled b/updates.d/140-hampack-compiled deleted file mode 100644 index 8f4f58b..0000000 --- a/updates.d/140-hampack-compiled +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/140-hampack-compiled - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -f "$HAMPACK_DIR/compile.conf" ]] -} - -run_update() { - echo "→ Updating HamPack compiled apps..." - bash "$HAMPACK_DIR/install-compiled.sh" - echo "✓ HamPack compiled apps updated." -} diff --git a/updates.d/150-hampack-windows b/updates.d/150-hampack-windows deleted file mode 100644 index 4e56ca4..0000000 --- a/updates.d/150-hampack-windows +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/150-hampack-windows - -HAMPACK_DIR="$HOME/.local/share/HamPack" - -is_installed() { - [[ -d "$HAMPACK_DIR" ]] && command -v wine &>/dev/null -} - -run_update() { - echo "→ Updating HamPack Windows apps..." - bash "$HAMPACK_DIR/install-windows-apps.sh" - echo "✓ HamPack Windows apps updated." -} diff --git a/updates.d/160-hampack-extras b/updates.d/160-hampack-extras deleted file mode 100644 index 70415b5..0000000 --- a/updates.d/160-hampack-extras +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -# /etc/coredesktop/updaters.d/160-hampack-extras - -is_installed() { - command -v curl &>/dev/null && command -v wget &>/dev/null -} - -run_update() { - echo "→ Upgrading uv tools..." - uv tool upgrade --all - - echo "→ Updating dx.py..." - wget -q https://raw.githubusercontent.com/HB9VQQ/dx.py/main/dx.py -O "$HOME/.local/bin/dx.py" - chmod +x "$HOME/.local/bin/dx.py" - - echo "✓ Extras updated." -} diff --git a/utils.sh b/utils.sh deleted file mode 100755 index 62c5d07..0000000 --- a/utils.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# Function to check if a package is installed -is_installed() { - pacman -Qi "$1" &> /dev/null -} - -# Function to check if a package is installed -is_group_installed() { - pacman -Qg "$1" &> /dev/null -} - -# Function to install packages if not already installed -install_packages() { - local packages=("$@") - local to_install=() - - for pkg in "${packages[@]}"; do - if ! is_installed "$pkg" && ! is_group_installed "$pkg"; then - to_install+=("$pkg") - fi - done - - if [ ${#to_install[@]} -ne 0 ]; then - echo "Installing: ${to_install[*]}" - yay -S --noconfirm "${to_install[@]}" - fi -} \ No newline at end of file