releasing version 1.2 V_1_2 lenny
authorProgfou <jean-christophe.andre@auf.org>
Thu, 28 Apr 2011 18:34:34 +0000 (01:34 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Thu, 28 Apr 2011 18:34:34 +0000 (01:34 +0700)
* auf-refer : correction pour éviter d'utiliser le mot réservé "list"
* aufrefer.py : correction pour éviter d'utiliser le mot réservé "list"
* aufrefer.py : filtrage des fichiers « cachés » (commençant par '.')
* aufrefer.py : gestion de l'absence de fichier de configuration
* aufrefer.py : ajout d'un masque 022 pour la création des fichiers
* ajustement des copyright et de l'URL du dépôt git

IDEAS.txt [new file with mode: 0644]
Makefile
auf-refer
aufrefer.py
debian/changelog
debian/control
debian/copyright
setup.py

diff --git a/IDEAS.txt b/IDEAS.txt
new file mode 100644 (file)
index 0000000..3240534
--- /dev/null
+++ b/IDEAS.txt
@@ -0,0 +1,16 @@
+- changer l'option -u en -u <refer> pour mettre à jour un seul référentiel
+- ajouter une option -U pour update all
+- ajouter une option -B pour choisir un BASE_DIR
+
+- séparer la notion de --add de --update (=> chargement asynchrone)
+- permettre un "get" même quand on n'a pas de copie locale ? +warning ?
+  => à faire grace à l'info META venant du --add NOM _URL_
+
+- ajouter un paramètre optionnel [<url>] pour l'ajout d'un référentiel
+- enregistrer l'URL d'origine et le nom donné au référentiel dans
+  BASE_DIR + referentiel + '.META' :
+    URL=http://intranet.auf/auf-refer/spip-regions.json
+    MIMETYPE=application/json
+    NAME=regions
+    DESCRIPTION=Référentiels SPIP : liste des régions.
+- fournir les méta-informations via des headers HTTP X-AufRefer-XXX: ?
index 88997ed..cc78d91 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,9 @@ build:
 install:
 
 clean:
+       rm -f *.pyc *.pyo
 
-test:
+deb:
        debuild -I.git -I*.ex -b -us -uc && sudo debi
 
 release:
index 7e85ee8..19c172a 100755 (executable)
--- a/auf-refer
+++ b/auf-refer
@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 """Outil de copie et mise à jour des référentiels AuF.
 
-Copyright ©2009  Agence universitaire de la Francophonie
+Copyright ©2009-2011  Agence universitaire de la Francophonie
 Licence : GPL version 3
 Auteur : Progfou <jean-christophe.andre@auf.org>
 
@@ -77,12 +77,12 @@ if __name__ == '__main__':
                 elif opt in ('-u', '--update'):
                     aufrefer.update(force=force)
                 elif opt in ('-l', '--list'):
-                    for referentiel in aufrefer.list():
+                    for referentiel in aufrefer.list_present():
                         print referentiel
                 elif opt in ('-L', '--list-available'):
-                    list = aufrefer.list_available(force=force)
-                    for referentiel in sorted(list):
-                        print "%-16s : %s" % (referentiel, list[referentiel])
+                    l = aufrefer.list_available(force=force)
+                    for referentiel in sorted(l):
+                        print "%-16s : %s" % (referentiel, l[referentiel])
                 elif opt in ('-A', '--add-available'):
                     aufrefer.add_available(force=force)
             except RuntimeError, e:
index 0fd7676..dd0f4df 100644 (file)
@@ -2,7 +2,7 @@
 # -*- coding: utf-8 -*-
 """Librairie de copie et mise à jour des référentiels AuF.
 
-Copyright ©2009  Agence universitaire de la Francophonie
+Copyright ©2009-2011  Agence universitaire de la Francophonie
 Licence : LGPL version 3
 Auteur : Progfou <jean-christophe.andre@auf.org>
 
@@ -15,8 +15,12 @@ DIR_BASE = '/var/lib/auf-refer'
 URL_BASE = 'http://intranet.auf/auf-refer'
 AVAILABLE_LIST = 'auf-refer.json'
 
-lines = filter(lambda l: not l.startswith('#'), file(CONFIG_FILE))
-config = dict(map(lambda l: map(lambda s: s.strip(), l.split('=')), lines))
+try:
+    lines = filter(lambda l: not l.startswith('#'), file(CONFIG_FILE))
+    config = dict(map(lambda l: map(lambda s: s.strip(), l.split('=')), lines))
+except IOError:
+    print "Fichier de configuration '%s' indisponible." % CONFIG_FILE
+    config = {}
 
 DIR_BASE = config.get('DIR_BASE', DIR_BASE).rstrip('/')
 URL_BASE = config.get('URL_BASE', URL_BASE).rstrip('/')
@@ -26,7 +30,7 @@ __all__ = ( 'DIR_BASE', 'URL_BASE', 'AVAILABLE_LIST' )
 
 TIME_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
 
-from os import listdir, utime, unlink
+from os import listdir, utime, unlink, umask
 from os.path import join, exists, getmtime
 from time import gmtime, strftime
 from calendar import timegm
@@ -87,7 +91,9 @@ def _update(referentiel, force=False):
                                 "URL concernée : %s" % url
     # si on est arrivé jusqu'ici c'est que tout va bien... on enregistre !
     try:
+        old_umask = umask(022)
         f = file(filename, 'wb')
+        umask(old_umask)
     except IOError, e:
         raise RuntimeError, \
             "L'écriture du référentiel '%s' a été refusée :\n  %s" \
@@ -144,7 +150,7 @@ def update(referentiel=False, force=False):
         _update(referentiel, force)
         return
     error_messages = []
-    for referentiel in listdir(DIR_BASE):
+    for referentiel in list_present():
         try:
             _update(referentiel, force)
         except Exception, e:
@@ -152,14 +158,14 @@ def update(referentiel=False, force=False):
     if error_messages:
         raise RuntimeError, '\n'.join(error_messages)
 
-def list():
-    return listdir(DIR_BASE)
+def list_present():
+    return filter(lambda n: not n.startswith('.'), listdir(DIR_BASE))
 
 def list_available(force=False):
     return get(AVAILABLE_LIST, force)
 
 def add_available(force=False):
-    missing = set(list_available(force)) - set(listdir(DIR_BASE))
+    missing = set(list_available(force)) - set(list_present())
     for referentiel in missing:
         _update(referentiel, force)
 
index 8eb3dda..8a8d8ea 100644 (file)
@@ -1,3 +1,14 @@
+auf-refer (1.2) lucid; urgency=low
+
+  * auf-refer : correction pour éviter d'utiliser le mot réservé "list"
+  * aufrefer.py : correction pour éviter d'utiliser le mot réservé "list"
+  * aufrefer.py : filtrage des fichiers « cachés » (commençant par '.')
+  * aufrefer.py : gestion de l'absence de fichier de configuration
+  * aufrefer.py : ajout d'un masque 022 pour la création des fichiers
+  * ajustement des copyright et de l'URL du dépôt git
+
+ -- Progfou <jean-christophe.andre@auf.org>  Fri, 29 Apr 2011 01:31:20 +0700
+
 auf-refer (1.1.1) jaunty; urgency=low
 
   * auf-refer : correction d'un bogue empêchant l'option -c de fonctionner
index befc789..4adb2fd 100644 (file)
@@ -2,9 +2,9 @@ Source: auf-refer
 Section: auf
 Priority: optional
 Maintainer: Progfou <jean-christophe.andre@auf.org>
-Build-Depends: cdbs (>= 0.4.49), debhelper (>= 5), python, python-support (>= 0.7)
+Build-Depends: cdbs (>= 0.4.49), debhelper (>= 5), python-support (>= 0.7), python
 Standards-Version: 3.7.3
-Homepage: http://git.auf.org/?p=auf-poste-client;a=tree;f=auf-refer
+Homepage: http://git.auf.org/?p=auf-refer
 
 Package: auf-refer
 Architecture: all
index e1a2d27..07ee3df 100644 (file)
@@ -9,8 +9,8 @@ Upstream Author:
 
 Copyright Holder:
 
-    Copyright (C) 2009  Agence universitaire de la Francophonie
-                        http://www.auf.org/
+    Copyright (C) 2009-2011  Agence universitaire de la Francophonie
+                             http://www.auf.org/
 
 License:
 
@@ -31,6 +31,6 @@ License:
 On Debian systems, the complete text of the GNU General
 Public License can be found in `/usr/share/common-licenses/GPL'.
 
-The Debian packaging is (C) 2009, Progfou <jean-christophe.andre@auf.org> and
-is licensed under the GPL, see above.
+The Debian packaging is (C) 2009-2011, Progfou <jean-christophe.andre@auf.org>
+and is licensed under the GPL, see above.
 
index dea225d..df5b520 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@
 from distutils.core import setup
 
 setup(name='auf-refer',
-    version='1.1.1',
+    version='1.2',
     author='Progfou',
     author_email='jean-christophe.andre@auf.org',
     url='http://git.auf.org/?p=auf-refer.git',