]> git.nbdom.net Git - nb.git/commitdiff
bin/owncloud-sync
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 5 Oct 2016 22:13:03 +0000 (00:13 +0200)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 5 Oct 2016 22:13:03 +0000 (00:13 +0200)
bin/owncloud-sync

index 4136635341b1cdca93d291e70ba9b9aa213dbb84..e07d163d85219a067df9a5b6687bb3e4cbbdb883 100755 (executable)
@@ -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