summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvg <vgm+dev@devys.org>2026-02-28 18:25:21 +0100
committervg <vgm+dev@devys.org>2026-02-28 18:25:21 +0100
commit0ef02be28917667225f519f2b1fe91d952759560 (patch)
tree3d7b2036853d68cb064bde4a720dd100256e3e90
parent2c5a6d5f6ab4e7a9731b543c82830118221bc3b5 (diff)
downloadgamechest-0ef02be28917667225f519f2b1fe91d952759560.tar.gz
gamechest-0ef02be28917667225f519f2b1fe91d952759560.tar.bz2
gamechest-0ef02be28917667225f519f2b1fe91d952759560.zip
git-sync on dita
-rwxr-xr-xgamechesttui97
-rwxr-xr-xgamechesttuidialog93
2 files changed, 113 insertions, 77 deletions
diff --git a/gamechesttui b/gamechesttui
index 9689f46..a5cbda1 100755
--- a/gamechesttui
+++ b/gamechesttui
@@ -1,89 +1,32 @@
-#!/bin/bash
+#!/bin/bash -eu
-set -e
-
-declare -a games
-
-GAME_INSTALLED=$(gamechest list | grep -i true | cut -d ":" -f 1 | cut -d " " -f 1)
-
-populate_games()
-{
- for game in "${GAME_INSTALLED}"; do
- games+=($game)
- done
-}
-
-choose_game()
-{
- local choice_array=()
- local shortcut_count=0
- for game in "${games[@]}"; do
- shortcut_count=$(( $shortcut_count + 1 ))
- choice_array+=( "$game" "[$shortcut_count] $game" )
- done
-
- local dialog_args=(
- --stdout
- --clear
- --backtitle "Games selection"
- --title "List of installed games"
- #--default-item "${games[-1]}"
- --menu "Choose one of the following game:" 0 0 0
- "${choice_array[@]}"
- )
-
- dialog "${dialog_args[@]}"
-}
-
-populate_profiles()
-{
- for profile in "dragoncat blackmoor calendros guest malice loudivine airi adetess"; do
- profiles+=($profile)
- done
-}
-
-choose_profile()
-{
- local choice_array=()
- local shortcut_count=0
- for profile in "${profiles[@]}"; do
- shortcut_count=$(( $shortcut_count + 1 ))
- choice_array+=( "$profile" "[$shortcut_count] $profile" )
- done
-
- local dialog_args=(
- --stdout
- --clear
- --backtitle "Profiles selection"
- --title "List of avalaible profiles"
- #--default-item "${profiles[-1]}"
- --menu "Choose one of the following profile:" 0 0 0
- "${choice_array[@]}"
- )
-
- dialog "${dialog_args[@]}"
-}
+set -x
+GAMESAVES_PATH="$(gamechest showconfig | jq -r .gamesaves_path)"
main()
{
# Game
-
- populate_games
- if [ ${#games[*]} -eq 0 ]; then echo "No game installed, bye."; exit 0; fi
- if [ ${#games[*]} -eq 1 ]; then
- game=${games[0]}
- else
- game=$(choose_game)
+ game="$(\
+ gamechest list \
+ | grep -i true \
+ | cut -d ":" -f 1 \
+ | cut -d " " -f 1 \
+ | fzf-frecency gamechest-game \
+ )"
+ if [ -z "$game" ]; then
+ # no game selected
+ exit 0
fi
# Profile
- populate_profiles
- if [ ${#profiles[*]} -eq 0 ]; then echo "No profile available, bye."; exit 0; fi
- if [ ${#profiles[*]} -eq 1 ]; then
- profile=${profiles[0]}
- else
- profile=$(choose_profile)
+ profile="$(\
+ yq -r '.profiles[].name' < "$GAMESAVES_PATH/profiles.yaml" \
+ | fzf-frecency gamechest-profile \
+ )"
+ if [ -z "$profile" ]; then
+ # no profile selected
+ exit 0
fi
echo "Running $game with $profile profile"
diff --git a/gamechesttuidialog b/gamechesttuidialog
new file mode 100755
index 0000000..9689f46
--- /dev/null
+++ b/gamechesttuidialog
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+set -e
+
+declare -a games
+
+GAME_INSTALLED=$(gamechest list | grep -i true | cut -d ":" -f 1 | cut -d " " -f 1)
+
+populate_games()
+{
+ for game in "${GAME_INSTALLED}"; do
+ games+=($game)
+ done
+}
+
+choose_game()
+{
+ local choice_array=()
+ local shortcut_count=0
+ for game in "${games[@]}"; do
+ shortcut_count=$(( $shortcut_count + 1 ))
+ choice_array+=( "$game" "[$shortcut_count] $game" )
+ done
+
+ local dialog_args=(
+ --stdout
+ --clear
+ --backtitle "Games selection"
+ --title "List of installed games"
+ #--default-item "${games[-1]}"
+ --menu "Choose one of the following game:" 0 0 0
+ "${choice_array[@]}"
+ )
+
+ dialog "${dialog_args[@]}"
+}
+
+populate_profiles()
+{
+ for profile in "dragoncat blackmoor calendros guest malice loudivine airi adetess"; do
+ profiles+=($profile)
+ done
+}
+
+choose_profile()
+{
+ local choice_array=()
+ local shortcut_count=0
+ for profile in "${profiles[@]}"; do
+ shortcut_count=$(( $shortcut_count + 1 ))
+ choice_array+=( "$profile" "[$shortcut_count] $profile" )
+ done
+
+ local dialog_args=(
+ --stdout
+ --clear
+ --backtitle "Profiles selection"
+ --title "List of avalaible profiles"
+ #--default-item "${profiles[-1]}"
+ --menu "Choose one of the following profile:" 0 0 0
+ "${choice_array[@]}"
+ )
+
+ dialog "${dialog_args[@]}"
+}
+
+
+main()
+{
+ # Game
+
+ populate_games
+ if [ ${#games[*]} -eq 0 ]; then echo "No game installed, bye."; exit 0; fi
+ if [ ${#games[*]} -eq 1 ]; then
+ game=${games[0]}
+ else
+ game=$(choose_game)
+ fi
+
+ # Profile
+ populate_profiles
+ if [ ${#profiles[*]} -eq 0 ]; then echo "No profile available, bye."; exit 0; fi
+ if [ ${#profiles[*]} -eq 1 ]; then
+ profile=${profiles[0]}
+ else
+ profile=$(choose_profile)
+ fi
+
+ echo "Running $game with $profile profile"
+ exec gamechest run --profile_id=$profile $game
+}
+
+main