blob: 04c95e6a625db1b9f8474ee2bdbabaaa3b25b8c2 (
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
|
#!/bin/sh
printusage() { echo "Usage: $0 [<repos> ...] (repos: all,`echo $repos | tr ' ' ','`) [up|down]" && exit; }
repos="docs sites 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"; }
#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
syncsite() { destdir="/var/www/tjkeller/" && sync "/home/timmy/.local/src/sites/" "tjkeller"; }
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
|