Set generate_dir in the non-override case
[mirror/userdir-ldap.git] / ud-generate
index fd6a16b..8bc0432 100755 (executable)
@@ -1281,13 +1281,21 @@ def ud_generate():
       parser.print_help()
       sys.exit(1)
 
-
-   l = make_ldap_conn()
-
    if options.generatedir is not None:
       generate_dir = os.environ['UD_GENERATEDIR']
    elif 'UD_GENERATEDIR' in os.environ:
       generate_dir = os.environ['UD_GENERATEDIR']
+   else:
+      generate_dir = GenerateDir
+
+
+   lockf = os.path.join(generate_dir, 'ud-generate.lock')
+   lock = get_lock( lockf )
+   if lock is None:
+      sys.stderr.write("Could not acquire lock %s.\n"%(lockf))
+      sys.exit(1)
+
+   l = make_ldap_conn()
 
    ldap_last_mod = getLastLDAPChangeTime(l)
    cache_last_mod = getLastBuildTime(generate_dir)
@@ -1299,26 +1307,22 @@ def ud_generate():
       fd.close()
       sys.exit(0)
 
-   lock = None
-   try:
-      lockf = os.path.join(generate_dir, 'ud-generate.lock')
-      lock = get_lock( lockf )
-      if lock is None:
-         sys.stderr.write("Could not acquire lock %s.\n"%(lockf))
-         sys.exit(1)
-
-      tracefd = open(os.path.join(generate_dir, "last_update.trace"), "w")
-      generate_all(generate_dir, l)
-      tracefd.write("%s\n%s\n" % (ldap_last_mod, int(time.time())))
-      tracefd.close()
+   tracefd = open(os.path.join(generate_dir, "last_update.trace"), "w")
+   generate_all(generate_dir, l)
+   tracefd.write("%s\n%s\n" % (ldap_last_mod, int(time.time())))
+   tracefd.close()
 
-   finally:
-      if lock is not None:
-         lock.close()
 
 if __name__ == "__main__":
-   ud_generate()
-
+   if 'UD_PROFILE' in os.environ:
+      import cProfile
+      import pstats
+      cProfile.run('ud_generate()', "udg_prof")
+      p = pstats.Stats('udg_prof')
+      ##p.sort_stats('time').print_stats()
+      p.sort_stats('cumulative').print_stats()
+   else:
+      ud_generate()
 
 # vim:set et:
 # vim:set ts=3: