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 /scripts | |
| 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.
Diffstat (limited to 'scripts')
| -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}" | 
