From 1fc93716700373505199c04183bd57f7a0d11e1a Mon Sep 17 00:00:00 2001 From: ZeLibertineGamer Date: Mon, 23 May 2016 03:35:36 -0700 Subject: Add interactive game updater script This is an interactive, but extremely dumb script that is not robust with error handling at all. However, it's a good start and a proof of concept. When/if this gets refactored, it'll be rather nice. --- scripts/updater.sh | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 scripts/updater.sh diff --git a/scripts/updater.sh b/scripts/updater.sh new file mode 100755 index 0000000..47daa20 --- /dev/null +++ b/scripts/updater.sh @@ -0,0 +1,54 @@ +#!/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. + +# Color escapes we'll use +norm="" +BG="" # Green +BC="" # Cyan +BY="" # Yellow +# Print the header first +vgstash list | head -n 2 +# Let advanced users grep for a specific game +vgstash list | grep -i "$1" +# -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 +case $game_id in + ''|*[!0-9]*) + echo "No matching game found." + exit 1 + ;; + *) + echo "Found game ID '${game_id}'!" + ;; +esac +# TODO: make sure the game is actually in the db... +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}" -- cgit v1.2.3-54-g00ecf