diff options
author | ZeLibertineGamer <zlg@zlg.space> | 2016-05-23 03:35:36 -0700 |
---|---|---|
committer | Ze Libertine Gamer <zlg@zlg.space> | 2016-05-23 03:35:36 -0700 |
commit | 1fc93716700373505199c04183bd57f7a0d11e1a (patch) | |
tree | a17dbd5ca7b57d49c47f14b7b990c14db1feae4e | |
parent | Add duplicate game reporting script (diff) | |
download | vgstash-1fc93716700373505199c04183bd57f7a0d11e1a.tar.gz vgstash-1fc93716700373505199c04183bd57f7a0d11e1a.tar.bz2 vgstash-1fc93716700373505199c04183bd57f7a0d11e1a.tar.xz vgstash-1fc93716700373505199c04183bd57f7a0d11e1a.zip |
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.
-rwxr-xr-x | scripts/updater.sh | 54 |
1 files changed, 54 insertions, 0 deletions
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="[0m" +BG="[1;32m" # Green +BC="[1;36m" # Cyan +BY="[1;33m" # 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}" |