Conform to sibling requirements

This commit is contained in:
David Young
2026-10-20 06:21:10 -06:00
parent 7d9bdfcb35
commit b7c7b6f6e8
23 changed files with 142 additions and 297 deletions
+8 -2
View File
@@ -12,12 +12,18 @@ The main objectives of this project are to:
## Installation ## 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 ## What Get's Installed
This is the long list of stuff that gets installed... This is the long list of stuff that gets installed...
+2 -2
View File
@@ -7,7 +7,7 @@
# exec= - command for the .desktop Exec= field (defaults to install path if omitted) # 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 # gui=true - set if a .desktop file should be generated. No .desktop file is created if false
# comment= - description for the .desktop file # 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;) # categories= - desktop categories (default: HamRadio;)
# #
# Example: # Example:
@@ -34,6 +34,6 @@ install=$HOME/.local/bin/paracon_1.3.0.pyz
gui=true gui=true
comment=Weak signal digital modes for amateur radio comment=Weak signal digital modes for amateur radio
exec=python $HOME/.local/bin/paracon_1.3.0.pyz 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; categories=HamRadio;
+6 -6
View File
@@ -14,7 +14,7 @@
version=1.8.1 version=1.8.1
git=https://github.com/wb2osz/direwolf.git git=https://github.com/wb2osz/direwolf.git
install=$HOME/.local/bin/direwolf 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] [QtTermTCP]
version=0.39 version=0.39
@@ -46,7 +46,7 @@ steps=make, mv dump1090 $HOME/.local/bin/dump1090
version=1.0-beta229 version=1.0-beta229
wget=https://www.ka2ddo.org/ka2ddo/YAAC.zip wget=https://www.ka2ddo.org/ka2ddo/YAAC.zip
install=$HOME/.local/bin/yaac/YAAC.jar install=$HOME/.local/bin/yaac/YAAC.jar
desktop=$HOME/.local/share/HamPack/desktop/yaac.desktop desktop=$HAMPACK_DIR/desktop/yaac.desktop
gui=true gui=true
steps=rm -rf $HOME/.local/bin/yaac, mkdir -p $HOME/.local/bin/yaac, mv /tmp/hampack-build/yaac/* $HOME/.local/bin/yaac/ 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 version=1.10.12
git=https://github.com/Waffleslop/POTACAT.git git=https://github.com/Waffleslop/POTACAT.git
install=$HOME/.local/bin/POTACAT.AppImage install=$HOME/.local/bin/POTACAT.AppImage
desktop=$HOME/.local/share/HamPack/desktop/potacat.desktop desktop=$HAMPACK_DIR/desktop/potacat.desktop
gui=true 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] [js8call-improved]
name=JS8Call name=JS8Call
version=3.0.3 version=3.0.3
git=https://github.com/JS8Call-improved/JS8Call-improved.git git=https://github.com/JS8Call-improved/JS8Call-improved.git
install=$HOME/.local/bin/JS8Call install=$HOME/.local/bin/JS8Call
desktop=$HOME/.local/share/HamPack/desktop/js8call.desktop desktop=$HAMPACK_DIR/desktop/js8call.desktop
gui=true 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 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 version=0.14.13
git=https://github.com/chrissnell/graywolf.git git=https://github.com/chrissnell/graywolf.git
install=$HOME/.local/bin/graywolf 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
+1 -1
View File
@@ -2,7 +2,7 @@
Name=JS8Call Name=JS8Call
Comment=Ham Radio real time chat over HF Comment=Ham Radio real time chat over HF
Exec=$HOME/.local/bin/JS8Call 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 Type=Application
Categories=HamRadio;Utility; Categories=HamRadio;Utility;
Terminal=false Terminal=false
+1 -1
View File
@@ -2,7 +2,7 @@
Name=POTACAT Name=POTACAT
Comment=Amateur radio spot aggregator with CAT control, QSO logging, and panadapter integration Comment=Amateur radio spot aggregator with CAT control, QSO logging, and panadapter integration
Exec=$HOME/.local/bin/POTACAT.AppImage Exec=$HOME/.local/bin/POTACAT.AppImage
Icon=$HOME/.local/share/HamPack/desktop/icons/potacat.png Icon=$HAMPACK_DIR/desktop/icons/potacat.png
Type=Application Type=Application
Categories=HamRadio;Utility; Categories=HamRadio;Utility;
Terminal=false Terminal=false
+1 -1
View File
@@ -2,7 +2,7 @@
Name=QtTermTCP Name=QtTermTCP
Comment=TCP Terminal Comment=TCP Terminal
Exec=$HOME/.local/bin/QtTermTCP Exec=$HOME/.local/bin/QtTermTCP
Icon=$HOME/.local/share/HamPack/desktop/icons/qttermtcp.png Icon=$HAMPACK_DIR/desktop/icons/qttermtcp.png
Type=Application Type=Application
Categories=HamRadio;Utility; Categories=HamRadio;Utility;
Terminal=false Terminal=false
+1 -1
View File
@@ -2,7 +2,7 @@
Name=YAAC Name=YAAC
Comment=Yet another aprs client Comment=Yet another aprs client
Exec=java -jar $HOME/.local/bin/yaac/YAAC.jar 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 Type=Application
Categories=HamRadio;Utility; Categories=HamRadio;Utility;
Terminal=false Terminal=false
-29
View File
@@ -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"
+10
View File
@@ -64,6 +64,7 @@ echo "Removing HamPack scripts and binaries..."
rm -f ~/.local/bin/hampackrefresh rm -f ~/.local/bin/hampackrefresh
rm -f ~/.local/bin/hampackupdate rm -f ~/.local/bin/hampackupdate
rm -f ~/.local/bin/hampackcheck rm -f ~/.local/bin/hampackcheck
rm -f ~/.local/bin/hampackremove
rm -f ~/.local/bin/dx.py rm -f ~/.local/bin/dx.py
# Uninstall not1mm # Uninstall not1mm
@@ -170,6 +171,15 @@ update-desktop-database "$HOME/.local/share/applications/" 2>/dev/null || true
echo "Removing HamPack state and data..." echo "Removing HamPack state and data..."
rm -rf ~/.local/state/HamPack rm -rf ~/.local/state/HamPack
rm -rf ~/.local/share/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 ""
echo "HamPack has been removed." echo "HamPack has been removed."
-33
View File
@@ -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."
+3 -1
View File
@@ -2,7 +2,9 @@
# #
# Purpose: Download and install pre-built binaries from binaries.conf # 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" TMP_DIR="/tmp/hampack-build"
VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions" VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions"
+4 -2
View File
@@ -2,7 +2,9 @@
# #
# Purpose : Compile and install applications from compile.conf # 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" TMP_DIR="/tmp/hampack-build"
VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions" VERSION_FILE="$HOME/.local/state/HamPack/.installed_versions"
@@ -102,7 +104,7 @@ generate_desktop() {
local desktop="$1" local desktop="$1"
local tmp_desktop="/tmp/$(basename "$desktop")" 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" echo "$tmp_desktop"
} }
+20 -70
View File
@@ -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 the logo
print_logo() { print_logo() {
@@ -24,83 +24,33 @@ EOF
# --- Main --- # --- Main ---
set -e 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 print_logo
if [ ! -d "$HOME/.local/share/coredesktop" ]; then if [ ! -d "$COREDESKTOP" ]; then
echo "HamPack requires CoreDesktop to be installed first." echo "HamPack requires CoreDesktop to be installed first."
echo "Please install CoreDesktop: https://coredesktop.federated.computer" echo "Please install CoreDesktop: https://coredesktop.federated.computer"
exit 1 exit 1
fi fi
cd ~ # 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.
echo "Getting the latest version of HamPack..." if [ -d "$LEGACY_DIR/.git" ] && [ "$LEGACY_DIR" != "$SELF" ]; then
rm -rf ~/.local/share/HamPack echo "Removing the old HamPack install at $LEGACY_DIR..."
git clone https://gitea.young.computer/david/HamPack.git ~/.local/share/HamPack > /dev/null rm -rf "$LEGACY_DIR"
fi
cd ~/.local/share/HamPack rm -f "$COREDESKTOP"/updates.d/[0-9][0-9][0-9]-hampack-*
echo "Setting up sudo..." 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 bash "$SELF/update.sh"
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
# 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." echo "HamPack is installed. You may want to restart existing applications when convenient."
+84
View File
@@ -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."
-14
View File
@@ -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."
}
-13
View File
@@ -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."
}
-16
View File
@@ -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."
}
-17
View File
@@ -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."
}
-14
View File
@@ -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."
}
-14
View File
@@ -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."
}
-14
View File
@@ -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."
}
-17
View File
@@ -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."
}
-28
View File
@@ -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
}