diff options
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}" | 
