aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-17 14:36:57 -0500
committerCraig Jennings <c@cjennings.net>2026-05-17 14:36:57 -0500
commit79f027d4fa8a0e5abb32c6cf8c21586b73c77a39 (patch)
tree7441b19219e23ba77b131da0cecf1fd43d52232e
parent19cd3ffad4874a812fb5ecbff636e15b0d0a7fc7 (diff)
downloadarchsetup-79f027d4fa8a0e5abb32c6cf8c21586b73c77a39.tar.gz
archsetup-79f027d4fa8a0e5abb32c6cf8c21586b73c77a39.zip
refactor(scripts/games): array + loop, flathub remote check, failure summary
Three things were wrong with the old script: - One line had a duplicate `flathub` argument (`flatpak install ... flathub flathub org.gnome.Crosswords`). Flatpak tolerated it; still a typo. - Nothing added the flathub remote, so a fresh machine without it would fail on every line. - 24 nearly identical `flatpak install` lines with no central handling if one app failed. I moved the app IDs into a single `APPS=()` array (sorted) and looped. The script now runs `flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo` up front, collects any failed apps into a `failed` array, and prints a summary plus a non-zero exit at the end if anything didn't install. I used `set -uo pipefail` rather than `-euo` on purpose so a single failed install doesn't abort the rest of the run.
-rwxr-xr-xscripts/games.sh79
1 files changed, 50 insertions, 29 deletions
diff --git a/scripts/games.sh b/scripts/games.sh
index 518a2cb..de6a476 100755
--- a/scripts/games.sh
+++ b/scripts/games.sh
@@ -1,33 +1,54 @@
-#!/bin/sh
+#!/bin/bash
# games installations via flatpak
-# Make sure we have flatpak already installed
-if ! [ -x "$(command -v flatpak)" ]; then
- echo 'Error: flatpak is not installed.' >&2
- echo 'Please install it with "sudo pacman -S flatpak" and reboot your system.' >&2
- exit 1
+set -uo pipefail
+
+if ! command -v flatpak >/dev/null 2>&1; then
+ echo 'Error: flatpak is not installed.' >&2
+ echo 'Please install it with "sudo pacman -S flatpak" and reboot your system.' >&2
+ exit 1
fi
-flatpak install --noninteractive --assumeyes --user flathub app.drey.Blurble
-flatpak install --noninteractive --assumeyes --user flathub com.github.avojak.paint-spill
-flatpak install --noninteractive --assumeyes --user flathub flathub org.gnome.Crosswords
-flatpak install --noninteractive --assumeyes --user flathub io.github.garglk.Gargoyle
-flatpak install --noninteractive --assumeyes --user flathub io.github.nokse22.ultimate-tic-tac-toe
-flatpak install --noninteractive --assumeyes --user flathub io.github.swordpuffin.hunt
-flatpak install --noninteractive --assumeyes --user flathub io.github.swordpuffin.splices
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Aisleriot
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Chess
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Four-in-a-row
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.LightsOff
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Mahjongg
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Mines
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Quadrapassel
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Sudoku
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.SwellFoop
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Taquin
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.Tetravex
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.TwentyFortyEight
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.five-or-more
-flatpak install --noninteractive --assumeyes --user flathub org.gnome.gbrainy
-flatpak install --noninteractive --assumeyes --user flathub org.gottcode.Peg-E
-flatpak install --noninteractive --assumeyes --user flathub org.gottcode.Tanglet
+flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
+
+APPS=(
+ app.drey.Blurble
+ com.github.avojak.paint-spill
+ io.github.garglk.Gargoyle
+ io.github.nokse22.ultimate-tic-tac-toe
+ io.github.swordpuffin.hunt
+ io.github.swordpuffin.splices
+ org.gnome.Aisleriot
+ org.gnome.Chess
+ org.gnome.Crosswords
+ org.gnome.five-or-more
+ org.gnome.Four-in-a-row
+ org.gnome.gbrainy
+ org.gnome.LightsOff
+ org.gnome.Mahjongg
+ org.gnome.Mines
+ org.gnome.Quadrapassel
+ org.gnome.Sudoku
+ org.gnome.SwellFoop
+ org.gnome.Taquin
+ org.gnome.Tetravex
+ org.gnome.TwentyFortyEight
+ org.gottcode.Peg-E
+ org.gottcode.Tanglet
+)
+
+failed=()
+for app in "${APPS[@]}"; do
+ if flatpak install --noninteractive --assumeyes --user flathub "$app"; then
+ :
+ else
+ failed+=("$app")
+ fi
+done
+
+if [ "${#failed[@]}" -gt 0 ]; then
+ echo
+ echo "Failed to install ${#failed[@]} app(s):" >&2
+ printf ' - %s\n' "${failed[@]}" >&2
+ exit 1
+fi