From: Nicolas Boisselier Date: Wed, 5 Oct 2016 22:13:03 +0000 (+0200) Subject: bin/owncloud-sync X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=6458bee8ff55280b7e62ca9b5afd9c3806a52442;p=nb.git bin/owncloud-sync --- diff --git a/bin/owncloud-sync b/bin/owncloud-sync index 41366353..e07d163d 100755 --- a/bin/owncloud-sync +++ b/bin/owncloud-sync @@ -2,7 +2,7 @@ ################################################################################# # # NB 08.09.16 - (C) 2016 Nicolas Boisselier -# /opt/nb/bin/ownCloud-sync +# bin/ownCloud-sync # ################################################################################# declare -r NAME="$(basename "${0}")" @@ -14,6 +14,22 @@ declare -r NAME="$(basename "${0}")" ################################################################################# VERBOSE=0 DEBUG=0 +CONF_NAME=".owncloud-sync.conf" + +################################################################################# +# +# Main +# +################################################################################# +main() { + + if [ "$UID" == "0" ]; then + owncloud_all "/{home,Users}/*/${CONF_NAME}" + else + load_conf ~/"$CONF_NAME" + owncloud_sync "$DIR" "$URL" + fi +} ################################################################################# # @@ -39,24 +55,21 @@ while [ $# -gt 0 ]; do done -################################################################################# -# -# Main -# -################################################################################# -main() { - - if [ "$UID" == "0" ]; then - owncloud_all "/{home,Users}/*/ownCloud" - else - owncloud_sync ~/ownCloud https://owncloud.nbdom.net - fi -} ################################################################################ # # Functions # ################################################################################# +load_conf() { + local conf="$1" + DIR="" + URL="" + if [ ! -r "$conf" ] || ! . "$conf" || [ -z "$DIR" -o -z "$URL" ]; then + echo "$NAME: $conf must be redable and contains DIR= and URL= values!" 1>&2 + exit 1 + fi +} + usage() { echo " =head1 NAME @@ -93,7 +106,7 @@ owncloud_sync() { return fi - lock=~/$NAME.pid + lock=~/.$NAME.pid # Clean old lock nd kill ( find "$lock" -mmin +$((60*2)) -exec cat "{}" \; | xargs kill ) &> /dev/null if [ -e "$lock" ]; then @@ -115,22 +128,30 @@ owncloud_sync() { } owncloud_all() { + # Args: files to search [ -z "$*" ] && return 1 IFS=$'\n' - for dir in `eval ls -1d "$*" 2>/dev/null`; do - user=`ls -ld "$dir" |awk '{print $3}'` - cd "$dir" || continue - #[ "$VERBOSE" -gt 0 ] && echo "$user: $dir" + for conf in `eval ls -1d "$*" 2>/dev/null`; do + #load_conf "$conf" + user=`ls -ld "$conf" |awk '{print $3}'` + #cd "$conf" || continue + + #[ "$VERBOSE" -gt 0 ] && echo "$user: $conf" args="" - [ "$VERBOSE" -gt 0 ] && args="$args --verbose" + local i=0 + while [ "$i" -lt "$VERBOSE" ]; do + args="$args -v" + i=$(($i+1)) + done + if [ "$DEBUG" -gt 0 ]; then echo su - "$user" -c "${NAME}${args}" continue fi - su - "$user" -c "${NAME}${args}" | sed "s~^~$user:$dir ~" + su - "$user" -c "${NAME}${args}" | sed "s~^~$user:$conf ~" done } @@ -140,27 +161,4 @@ dir_mounted() { return 0 } -err() { - exit_code=$1 - msg=$2 - echo "ERR: $msg" >&2 - exit $exit_code -} - -warn() { - msg=$1 - echo "WARN: $msg" >&2 -} - -verbose() { - msg=$1 - - level=$2 - [ -z "$level" ] && level=1 - level=$(($level-1)) - - [ "$VERBOSE" -gt "$level" ] || return - - echo "VERBOSE: $msg" >&2 -} main