Ajout d'une entrée cron lors de l'utilisation de --config
[ccoop.git] / ccoop-update.sh
index 57c526c6c2cf6a0e6bb64d3b47adaa8803fc4e2d..e4cc900a715c7c82bfd737ccb4a777a4988c61a5 100755 (executable)
@@ -25,7 +25,8 @@ function usage() {
     echo "  -h|--help             Display that help"
     echo "  -q|--quiet            Don't display informationnal messages"
     echo "  --log                 Log everything to $LOGFILE"
-    echo "  --config              Setup a config file"
+    echo "  --config              Setup a config file and install cron entry"
+    echo "  --unconfig            Remove config file and remove cron entry"
     #echo "  --target=<filename>  Set target filename. Defaults to $target_file"
     #echo "See man ccoop.sh(1) for documentation."
 }
@@ -43,7 +44,11 @@ for arg in "$@"; do
         continue
     ;;
     --config)
-        ismakeconfig=1
+        isconfig=1
+        continue
+    ;;
+    --unconfig)
+        isunconfig=1
         continue
     ;;
     -h|--help)
@@ -85,14 +90,34 @@ function fetch() {
     fi
 }
 
-function makeconfig() {
+function doconfig() {
     read -p "Coopanet login: " COOPLOGIN
     read -p "Coopanet password: " -s COOPPASSWORD
     echo "# coopanet configuration">$CCPATH/config
     echo "COOPLOGIN=$COOPLOGIN">>$CCPATH/config
     echo "COOPPASSWORD=$COOPPASSWORD">>$CCPATH/config
     echo >&2
-    echo "config file writen" >&2
+    echo "config writen to $CCPATH/config" >&2
+    crontab -l | grep -v ccoop-update.sh || echo "$(($RANDOM%60)) 6     * * *   $PWD/`dirname $0`/ccoop-update.sh -q" | crontab -
+    echo "crontab installed" >&2
+}
+
+function dounconfig() {
+    local ok
+    if [[ -e $CCPATH/config ]]; then
+        rm -f $CCPATH/config
+        echo "$CCPATH/config deleted">&2
+        ok=1
+    fi
+    if crontab -l | grep ccoop-update.sh ; then
+        crontab -l | grep -v ccoop-update.sh | crontab -
+        echo "crontab uninstalled" >&2
+        ok=1
+    fi
+    if [[ -z "$ok" ]]; then
+        echo "Allready uninstalled." >&2
+    fi
+    exit 0
 }
 
 function fetchall() {
@@ -185,8 +210,11 @@ function atomize() {
 
 umask 0077 # make sure the generated files are only readable by the user
 
-if [[ -n $ismakeconfig ]]; then
-    makeconfig
+if [[ -n $isconfig ]]; then
+    doconfig
+fi
+if [[ -n $isunconfig ]]; then
+    dounconfig
 fi
 
 # Make sure our temporary files are deleted on error and on exit
@@ -195,6 +223,9 @@ trap "rm -f $COOKIEJAR $TMP; exit" INT TERM EXIT
 if [[ `ls -l $CCPATH/config | cut -c 8-10` != "---" ]]; then
     echo "Security warning: config file should be chmod o-rwx" >&2
 fi
+if [[ ! -r $CCPATH/config ]]; then
+    echo "Use '%0 --config'"
+fi
 source $CCPATH/config
 
 if [[ -n $log ]]; then