[Erp5-report] r42855 rafael - /erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 1 01:37:05 CET 2011


Author: rafael
Date: Tue Feb  1 01:37:04 2011
New Revision: 42855

URL: http://svn.erp5.org?rev=42855&view=rev
Log:
Improve script and remove /tmp and lock usage.

Modified:
    erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/repository.py

Modified: erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/repository.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/repository.py?rev=42855&r1=42854&r2=42855&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/repository.py [utf8] (original)
+++ erp5/trunk/utils/erp5.utils.dists/src/erp5/utils/dists/repository.py [utf8] Tue Feb  1 01:37:04 2011
@@ -36,70 +36,74 @@ import shutil
 import genbt5list
 from bt5 import compress_business_template_list
 
-# Lock file name
-LOCKFILE="/tmp/update_repository.lock"
-WORKDIR = "/tmp/update_repository_work"
-DOWNLOADDIR = "/tmp/update_repository_download"
-DOWNLOAD_COMMAND = "svn co --trust-server-cert --non-interactive --quiet"
+DOWNLOAD_COMMAND = "svn co --trust-server-cert --non-interactive -q"
 
 def load_options():
   parser = OptionParser()
   parser.add_option("-u", "--url", dest="url",
-                    help="write report to FILE", metavar="URL", 
+                    help="URL where the business templates will be downloaded from", 
+                    metavar="URL", 
                     default="https://svn.erp5.org/repos/public/erp5/trunk/bt5,"\
                             "https://svn.erp5.org/repos/public/erp5/trunk/products/ERP5/bootstrap")
   
   parser.add_option("-r", "--repository",
                     dest="repository", default=os.getcwd(),
-                    help="don't print status messages to stdout")
+                    help="where the .bt5 will be placed")
 
   parser.add_option("-d", "--download-dir",
-                     dest="downloaddir", default=DOWNLOADDIR,
+                     dest="downloaddir", default=None,
                      help="don't print statu messages to stdout")
 
   parser.add_option("-c", "--download-cmd",
-                     dest="downloadcmd", default=DOWNLOAD_COMMAND,
-                     help="don't print status messages to stdout")
+                     dest="downloadcmd", 
+                     default=DOWNLOAD_COMMAND,
+                     help="Command used to download bt5 from URL")
 
   parser.add_option("-p", "--preserve-download",
-                     dest="downloadcmd", default=DOWNLOAD_COMMAND,
-                     help="don't print status messages to stdout")
+                     dest="preserve_download", 
+                     action="store_true",
+                     default=False,
+                     help="Do not erase download after build.")
 
   return parser.parse_args()
 
 def build(url_list, destination,
-         download_dir=DOWNLOADDIR, 
+         download_dir=None, 
          download_cmd=DOWNLOAD_COMMAND, 
          preserve_download=True):
 
-  if os.path.exists(LOCKFILE):
-      raise ValueError("Lock file %s exists" % LOCKFILE)
+  lock_path = os.path.join(destination, ".lock")
+  workdir = os.path.join(destination, ".workdir")
+  if download_dir is None:
+    download_dir = os.path.join(destination, ".download")
+  if os.path.exists(lock_path):
+      raise ValueError("Lock file %s exists" % lock_path)
 
   try: 
-    f = open(LOCKFILE, "w+"); f.close()
+    f = open(lock_path, "w+"); f.close()
     if not os.path.exists(download_dir):
       os.mkdir(download_dir)
-    os.mkdir(WORKDIR)
+    os.mkdir(workdir)
     for url in url_list:
       if url != "":
         os.chdir(download_dir)
         repos = md5(url).hexdigest()
         os.system("%s %s %s" % (download_cmd, url, repos))
-        compress_business_template_list(WORKDIR, repos)
+        compress_business_template_list(workdir, repos)
 
     ### # Publish the repository
-    for bt in os.listdir(WORKDIR):
+    for bt in os.listdir(workdir):
       bt_path = os.path.join(destination,bt)
       if os.path.exists(bt_path):
         os.remove(bt_path)
-      shutil.move('%s/%s' % (WORKDIR,bt), destination)
+      shutil.move('%s/%s' % (workdir, bt), destination)
     
     os.chdir(destination)
-    genbt5list.main()
+    genbt5list._main()
   finally:
-    if os.path.exists(LOCKFILE):
-      os.remove(LOCKFILE)
-    shutil.rmtree(WORKDIR)
+    if os.path.exists(lock_path):
+      os.remove(lock_path)
+    shutil.rmtree(workdir)
     if not preserve_download:
       shutil.rmtree(download_dir)
   return True
@@ -110,7 +114,7 @@ def main():
         destination = options.repository, 
         download_dir=options.downloaddir,
         download_cmd=options.downloadcmd,
-        preserve_download=False
+        preserve_download=options.preserve_download
        )
 
 if __name__ == "__main__":



More information about the Erp5-report mailing list