summaryrefslogtreecommitdiff
path: root/scripts/updater.sh
blob: 47daa2091dedd19b54c7d18ef7c3d6b3cf2b5a56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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}"