diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/updater.sh | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/scripts/updater.sh b/scripts/updater.sh deleted file mode 100755 index cdf78a0..0000000 --- a/scripts/updater.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -# WARNING: This script is a proof-of-concept and prone to errors. I don't want to hear any bitching if you use this and it blows up your game db. Back it up using `vgstash export -i foo.yaml` first. - -# TODO: Refactor into multiple functions to improve error-handling. - -# Set options for improved robustness -set -o errexit -set -o pipefail -set -o nounset - -# Color escapes we'll use -norm="[0m" -BG="[1;32m" # Green -BC="[1;36m" # Cyan -BY="[1;33m" # Yellow - -again=0 -gamesrc="" - -gid_check() { - if [[ $# == 1 ]]; then - case $game_id in - ''|*[!0-9]*) - echo "ID is not a number." - exit 1 - ;; - *) - # Check for its existence - result=$(vgstash list -r | grep "^${game_id}|") - if [[ -n $result ]]; then - echo "Found game ID '${game_id}'!" - else - echo "ID not found in vgstash database." - exit 1 - fi - ;; - esac - fi -} - -field_update() { - echo -ne "${BG}Which field are you updating?\n[t]itle, [s]ystem, [o]wnership, [p]rogress: ${norm}" - read game_field - case $game_field in - t|s) - clause="string" - ;; - o) - clause="y/n" - ;; - p) - clause="[f]resh, [i]n-progress, [b]eaten, [c]omplete" - ;; - *) - echo "Invalid" - exit 1 - ;; - esac - echo -ne "${BG}What to?\n${clause}: ${norm}" - read game_value - # TODO: Put this into a loop/function - echo "Running '${BC}vgstash update ${game_id} ${game_field} "${game_value}"${norm}'..." - echo -ne "${BY}" - vgstash update ${game_id} ${game_field} "${game_value}" - echo -ne "${norm}" - run_again -} - -run_again() { - echo -ne "${BG}Do you want to edit another game?${norm} " - read again - case $again in - y|yes) - main - ;; - n|no) - exit - ;; - *) - echo "Invalid. Try [y]es or [n]o." - run_again - ;; - esac -} - -game_search() { - if [[ $# == 0 ]]; then - echo -ne "${BG}Game title to search for:${norm} " - read gamesrc - else - gamesrc="$1" - fi - # Print the header first - vgstash list | head -n 2 - vgstash list | grep -i "$gamesrc" - # -ne omits the newline and accepts color escapes; handy! - echo -ne "${BG}Which ID do you want to update?${norm} " - read game_id - echo "${game_id} selected." - # Check to make sure $game_id is a number - gid_check $game_id - field_update $game_id -} - -main() { - case $# in - 0) - game_search - ;; - 1) - game_search "$1" - ;; - *) - echo "This script accepts zero or one arguments." - exit - ;; - esac -} - -main "$*" |