pre="${0##*/}:"
cron=false
orig_args=("$@")
-temp=$(getopt -l cpull-reexec,help cl:m:npqs:t:vh "$@") || usage 1
+temp=$(getopt -l cron,pull-reexec,help cl:m:npqs:t:vh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
fi
### end options parsing
+# TODO: i wonder if there should be an option to send to the default
+# targets, plus any given on the command line.
# set default targets
-if [[ ! -v targets && ! $source && $HOSTNAME == "$MAIL_HOST" ]]; then
+if [[ ! -v targets && ! $source ]]; then
+ if [[ $HOSTNAME != "$MAIL_HOST" ]] && $cron ; then
+ echo "We are not MAIL_HOST, nothing to do"
+ exit 0
+ fi
case $HOSTNAME in
kw|x2)
if ping -q -c1 -w1 iank.vpn.office.fsf.org &>/dev/null; then
break
fi
done
-if ! $pull_reexec && [[ $source ]] && ! $pulla ; then
+if ! $pull_reexec && [[ $source ]] && $pulla ; then
tmpf=$(mktemp)
scp $source:/a/bin/distro-setup/btrbk-run $tmpf
if ! diff -q $tmpf $BASH_SOURCE; then
local_zone=$(date +%z)
if [[ $source ]]; then
- if ! zone=$(ssh root$source date +%z); then
+ if ! zone=$(ssh root@$source date +%z); then
die failed to ssh to root@$source
fi
if [[ $zone != $local_zone ]]; then
for h in ${targets[@]}; do
if zone=$(ssh root@$h "mkdir -p /mnt/root/btrbk && date +%z"); then
sshable+=($h)
+ if [[ $zone != $local_zone ]]; then
+ die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
+ fi
else
sshfail+=($h)
fi
- if [[ $zone != $local_zone ]]; then
- die "error: dont confuse yourself with multiple time zones. $h has different timezone than localhost"
- fi
done
if [[ ! $sshable ]] || { ! $cron && [[ $sshfail ]]; }; then
die "failed to ssh to hosts: ${sshfail[*]}"