summaryrefslogtreecommitdiff
path: root/.old/sinkold
blob: 302296343c871fefca2fdc2c712de49bb6e26c43 (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
#!/bin/sh

printusage()   { echo "Usage: $0 [<repos> ...] (repos: all,`echo $repos | tr ' ' ','`) [up|down]" && exit; }

repos="docs patches"

oper=`echo $@ | sed 's/.* //'` # Get last argument
([ -z $2 ] || ([ "$oper" != "up" ] && [ "$oper" != "down" ])) && printusage

# rync options
#fix this too
ropts="--archive --partial --progress --recursive --update --verbose" # Equivalent to: -aPrvu --delete
rdest="tjkrsync@tjkeller.xyz:"

# Colors
BOLD="\033[1m"
NORM="\033[0m"
CYN="\033[0;36m"
RED="\033[0;31m"
GRN="\033[0;32m"

printsyncmsg() { echo -n "$CYN[Syncing $SYNCNAME...]$NORM\n"; }
printsuccess() { echo -n "$BOLD$GRN[Successfully synced $SYNCNAME]\n"; }
printerror()   { echo -n "$BOLD$RED[An error occured while syncing $SYNCNAME]\n"; }

sync() {
	[ $oper = "up" ] && SYNCNAME="$1$2 to $rdest$2" || SYNCNAME="$rdest$2 to $1$2"
	printsyncmsg
	(if [ $oper = "up" ]; then rsync $ropts $1$2 $rdest; else rsync $ropts --delete $rdest$2 $1; fi) \
	&& printsuccess || printerror
}

# arg1 = options + containing directory path, arg2 = file/directory name
syncdocs()	{ destdir="" && 			sync "/home/timmy/docs/" "school";						}
#syncsites()	{ destdir="" &&				sync "--exclude=pass /home/timmy/.local/src/" "sites";			} # Excludes password file
syncpatches()	{ destdir="" && 			sync "--exclude=.git /home/timmy/.local/src/programs/" "patches";	} # Excludes git files

for arg in "$@"; do
	case $arg in
		all) $0 $repos $oper ;;
		up|down) oper=$arg ;;
		*) # Would like to use something like $repos) here but cant
			for repo in $repos; do
				[ "$arg" = "$repo" ] && sync$arg && break
			done || printusage
		;;
	esac
done