Ajout d'une entrée cron lors de l'utilisation de --config
authorJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Tue, 11 Mar 2008 14:08:15 +0000 (14:08 +0000)
committerJean-Michel Nirgal Vourgère <jmv@nirgal.com>
Tue, 11 Mar 2008 14:08:15 +0000 (14:08 +0000)
Ajout de l'option --unconfig

README
ccoop-atomize.py
ccoop-update.sh

diff --git a/README b/README
index 88781a65557c8d607aa1f03150a91f9dcc1fdb74..dfd8df5aa6cbfdf5ca1c8b1bfe8273a1f9b6efa1 100644 (file)
--- a/README
+++ b/README
@@ -16,13 +16,9 @@ Lors de la première utilisation, lancez
 
 ./ccoop-update.sh --config
 
-Automatisation
---------------
+Cela crééra le fichier ~/ccoop/config et installera un entrée cron
 
-Pour que les fichiers cvs et atom soient mis à jour automatiquement, vous pouvez ajouter à /etc/crontab une ligne du genre:
-0 6     * * *   nirgal  $HOME/PATH/ccoop-update.sh -q
-
-en remplaçant nirgal par votre nom d'utilisateur et PATH par le chemin dans lequel le script a été installé, par exemple ccoop
+De même, l'option --unconfig permet de supprimer le fichier de config et l'entrée du cron
 
 Bugs connus
 -----------
index 11c79fcb4617361b7699237d9696ab57a8d22a14..b5b4ddf8754708464a81b002e2079bebb30b28a4 100755 (executable)
@@ -1,12 +1,12 @@
 #!/usr/bin/env python
 
-import sys
+import sys, os
 
 account=sys.argv[1]
 name=sys.argv[2]
 balance=sys.argv[3]
 
-lines = file(op.path.join(os.getenv("CCPATH"), +account+".csv")).readlines()
+lines = file(os.path.join(os.getenv("CCPATH"), account+".csv")).readlines()
 nlines = len(lines)
 
 print '<?xml version="1.0" encoding="UTF-8"?>'
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