add pipx apps and terrahour

This commit is contained in:
2026-10-26 11:22:03 -06:00
parent 4593082c4a
commit a7310f4811
5 changed files with 40 additions and 1 deletions
+3
View File
@@ -114,6 +114,9 @@ install_packages "${MEDIA[@]}"
echo "Installing fonts..." echo "Installing fonts..."
install_packages "${FONTS[@]}" install_packages "${FONTS[@]}"
echo "Installing pipx applications..."
install_pipx_apps "${PIPX[@]}"
# Enable all systemd services listed in SERVICES array, then register the SSH # Enable all systemd services listed in SERVICES array, then register the SSH
# Avahi service so the machine is discoverable over mDNS # Avahi service so the machine is discoverable over mDNS
echo "Configuring services..." echo "Configuring services..."
+6
View File
@@ -84,6 +84,7 @@ DEV_TOOLS=(
python-myst-parser python-myst-parser
python-pillow python-pillow
python-pip python-pip
python-pipx
python-pygments python-pygments
rust rust
starship starship
@@ -134,6 +135,11 @@ FONTS=(
ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols
) )
# Python applications installed with pipx
PIPX=(
terrahour
)
# Services to enable # Services to enable
SERVICES=( SERVICES=(
avahi-daemon.service avahi-daemon.service
+4
View File
@@ -9,4 +9,8 @@ mise self-update -y
echo "Updating Ruby and Rails..." echo "Updating Ruby and Rails..."
mise upgrade --bump ruby mise upgrade --bump ruby
mise reshim mise reshim
# A new Ruby's bundled gems (e.g. minitest) come with executables RubyGems
# doesn't recognise as its own, so gem update stops to ask whether to overwrite
# them. Regenerating them first lets the update go through without asking.
gem pristine --all --only-executables > /dev/null
gem update gem update
+13 -1
View File
@@ -1,5 +1,15 @@
#!/bin/bash #!/bin/bash
COREDESKTOP="$HOME/.local/share/coredesktop"
source "$COREDESKTOP/utils.sh"
source "$COREDESKTOP/packages.conf"
STATUS=0
echo "Checking for new pipx applications..."
install_pipx_apps "${PIPX[@]}" || STATUS=1
# pipx venvs are tied to the Python they were built with, so a Python upgrade # pipx venvs are tied to the Python they were built with, so a Python upgrade
# breaks them in a way `pipx upgrade-all` can't repair. Rebuild them when the # breaks them in a way `pipx upgrade-all` can't repair. Rebuild them when the
# Python version changes, or when an upgrade fails. # Python version changes, or when an upgrade fails.
@@ -15,4 +25,6 @@ else
echo "pipx upgrade-all failed, reinstalling pipx applications..." echo "pipx upgrade-all failed, reinstalling pipx applications..."
pipx reinstall-all pipx reinstall-all
fi fi
fi && mkdir -p "$(dirname "$STAMP")" && echo "$CURRENT_PYTHON" > "$STAMP" fi && mkdir -p "$(dirname "$STAMP")" && echo "$CURRENT_PYTHON" > "$STAMP" || STATUS=1
exit $STATUS
+14
View File
@@ -27,6 +27,20 @@ install_packages() {
fi fi
} }
# Function to install pipx applications if not already installed
install_pipx_apps() {
local installed app status=0
installed="$(pipx list --short 2> /dev/null | cut -d' ' -f1)"
for app in "$@"; do
if ! grep -qx "$app" <<< "$installed"; then
echo "Installing $app with pipx..."
pipx install "$app" || status=1
fi
done
return $status
}
# Function to remove pacman/AUR packages if installed # Function to remove pacman/AUR packages if installed
remove_packages() { remove_packages() {
local packages=("$@") local packages=("$@")