ud-generate: Add -f option to build even if cache is current
authorPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 10:56:18 +0000 (11:56 +0100)
committerPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 10:56:18 +0000 (11:56 +0100)
debian/changelog
ud-generate

index 73450e4..95b67f2 100644 (file)
@@ -29,6 +29,7 @@ userdir-ldap (0.3.80) UNRELEASED; urgency=low
   * ud-generate: No longer expand $ in dnsZoneEntry data to a \n\t.
   * ud-generate: Move code into getLastBuildTime() and getLastLDAPChangeTime()
     functions.
+  * ud-generate: Add -f option to build even if cache is current.
 
   [ Stephen Gran ]
   * Fix deprecation warnings for sha module by using hashlib module instead
@@ -41,7 +42,7 @@ userdir-ldap (0.3.80) UNRELEASED; urgency=low
   * ud-replicate: set correct permissions for web-passwords
   * add freecdb to depends
 
- -- Peter Palfrader <weasel@debian.org>  Mon, 12 Mar 2012 11:45:44 +0100
+ -- Peter Palfrader <weasel@debian.org>  Mon, 12 Mar 2012 11:55:55 +0100
 
 userdir-ldap (0.3.79) unstable; urgency=low
 
index 78caa4a..c0b6515 100755 (executable)
@@ -28,7 +28,7 @@
 #   along with this program; if not, write to the Free Software
 #   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-import string, re, time, ldap, getopt, sys, os, pwd, posix, socket, base64, hashlib, shutil, errno, tarfile, grp
+import string, re, time, ldap, optparse, sys, os, pwd, posix, socket, base64, hashlib, shutil, errno, tarfile, grp
 import lockfile
 from userdir_ldap import *
 from userdir_exceptions import *
@@ -1285,15 +1285,31 @@ def getLastBuildTime():
 
 
 
+
+parser = optparse.OptionParser()
+parser.add_option("-g", "--generatedir", dest="generatedir", metavar="DIR",
+  help="Output directory.")
+parser.add_option("-f", "--force", dest="force", action="store_true",
+  help="Force generation, even if not update to LDAP has happened.")
+
+(options, args) = parser.parse_args()
+if len(args) > 0:
+   parser.print_help()
+   sys.exit(1)
+
+
 l = make_ldap_conn()
 
-# override globaldir for testing
-if 'UD_GENERATEDIR' in os.environ:
+if options.generatedir is not None:
+   GenerateDir = os.environ['UD_GENERATEDIR']
+elif 'UD_GENERATEDIR' in os.environ:
    GenerateDir = os.environ['UD_GENERATEDIR']
 
 ldap_last_mod = getLastLDAPChangeTime(l)
 cache_last_mod = getLastBuildTime()
-if cache_last_mod >= ldap_last_mod:
+need_update = ldap_last_mod > cache_last_mod
+
+if not options.force and not need_update:
    fd = open(os.path.join(GenerateDir, "last_update.trace"), "w")
    fd.write("%s\n%s\n" % (ldap_last_mod, int(time.time())))
    fd.close()