add -s option to autosync

This commit is contained in:
Rob Pearce 2021-06-26 09:29:29 +10:00
parent df4f6f24ff
commit 44a2b82cde
1 changed files with 48 additions and 25 deletions

73
t.sh
View File

@ -55,7 +55,9 @@ function usage() {
local titleformat format
local usage_var desc_var
format="%22s %-40s %s\n"
echo "usage: $0 COMMAND [commandopts]"
echo "usage: $0 COMMAND [OPTIONS] [commandopts]"
echo
echo " -s Auto-sync with server when complete."
echo
printf "$format" "COMMAND" "DESCRIPTION" "SYNONYMS"
for x in $valid_modes; do
@ -1053,6 +1055,40 @@ function getchildren() {
return 0
}
function tasksync() {
local res upcount downcount noun
if [[ $1 == "-a" ]]; then
noun="Auto-sync"
else
noun="Sync"
fi
res=$(${VDIRSYNCER} sync 2>&1)
rv=$?
if [[ $rv -eq 0 ]]; then
upcount=$(echo "$res" | grep -v ^Sync | grep -c ${VDS_REMOTE})
downcount=$(echo "$res" | grep -v ^Sync | grep -c ${VDS_LOCAL})
[[ $upcount -eq 1 ]] && upess="" || upess="s"
[[ $downcount -eq 1 ]] && downess="" || downess="s"
if [[ $upcount -eq 0 && $downcount -eq 0 ]]; then
action "$noun complete - no changes."
elif [[ $upcount -eq 0 ]]; then
action "$noun complete - $downcount change$downess pulled."
elif [[ $downcount -eq 0 ]]; then
action "$noun complete - $upcount change$upess pushed."
else
action "$noun complete - $upcount change$upess pushed, $downcount change$downess pulled."
fi
else
error "$noun failed. Output:"
echo "$res" | sed -e 's/^/ /'
fi
}
# Should be in config file:
#basedir=/Users/rpearce/scripts/t
#dir=$basedir/docs
@ -1140,9 +1176,10 @@ addcmd "view" "view <id>" "Show detailed info for given task" "v|view|info|vcal"
DEBUG=0
TESTMODE=0
AUTOSYNC=0
ARGS="hdt"
ARGS="hdst"
while getopts "$ARGS" i; do
case "$i" in
h)
@ -1152,6 +1189,9 @@ while getopts "$ARGS" i; do
d)
DEBUG=1
;;
s)
AUTOSYNC=1
;;
t)
DEBUG=1
TESTMODE=1
@ -1183,29 +1223,7 @@ fi
# Commands that don't need tasks loaded
if [[ $mode == "sync" ]]; then
res=$(${VDIRSYNCER} sync 2>&1)
rv=$?
if [[ $rv -eq 0 ]]; then
upcount=$(echo "$res" | grep -v ^Sync | grep -c ${VDS_REMOTE})
downcount=$(echo "$res" | grep -v ^Sync | grep -c ${VDS_LOCAL})
[[ $upcount -eq 1 ]] && upess="" || upess="s"
[[ $downcount -eq 1 ]] && downess="" || downess="s"
if [[ $upcount -eq 0 && $downcount -eq 0 ]]; then
action "Sync complete - no changes."
elif [[ $upcount -eq 0 ]]; then
action "Sync complete - $downcount change$downess pulled."
elif [[ $downcount -eq 0 ]]; then
action "Sync complete - $upcount change$upess pushed."
else
action "Sync complete - $upcount change$upess pushed, $downcount change$downess pulled."
fi
else
error "sync failed. Output:"
echo "$res" | sed -e 's/^/ /'
fi
tasksync
exit $rv
fi
@ -1391,3 +1409,8 @@ else
fi
fi
fi
if [[ $AUTOSYNC -eq 1 && $mode != "sync" ]]; then
tasksync -a
fi