From 2b4408d68476322b58ee3b754dd68522d1dde170 Mon Sep 17 00:00:00 2001 From: jorgormo Date: Mon, 30 Jun 2008 16:53:43 +0200 Subject: [PATCH] fixes en melon-watch-dir para correr en hyades --- melon-watch-dir.py | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/melon-watch-dir.py b/melon-watch-dir.py index 45a9420..3a3cd0a 100755 --- a/melon-watch-dir.py +++ b/melon-watch-dir.py @@ -4,30 +4,47 @@ import sys import time import os import tempfile +import random dst_dirname = sys.argv[1] name = sys.argv[2] dirname = sys.argv[3] total = int(sys.argv[4]) -user = os.getlogin() +try: + user = os.getlogin() +except: + user = "jorgormo" hostname = os.uname()[1] -if "NamedTemporaryFile" in dir(tempfile): - outfile=tempfile.NamedTemporaryFile("w+b",-1,".melon","log-",dst_dirname) -else: - outfile=file(dst_dirname + os.sep + tempfile.mktemp(".melon"), "w+b", 0) +# this is not secure, race conditions are possible +def tempname(suffix, preffix, dirname): + l = os.listdir(dirname) + name = preffix+("%05d"%random.randint(0,99999))+suffix + while name in l: + name = preffix+("%05d"%random.randint(0,99999))+suffix + return dirname+os.sep+name -old_count = -1 -count = len(os.listdir(dirname)) -while count < total: - if old_count != count: - outfile.write("!!%s&%s&%s&%s&%d!!\n"%(name, user, hostname, dirname+" "+str(count)+"/"+str(total), (100*count)/total)) - outfile.flush() - time.sleep(2) - old_count = count +if "NamedTemporaryFile" in dir(tempfile): + outfile=tempfile.NamedTemporaryFile("w+b",-1,"","melon-",dst_dirname) +else: + outfilename=tempname(".melon", "log-", dst_dirname) + outfile=file(outfilename, "w+b", 0) +try: + old_count = -1 count = len(os.listdir(dirname)) + while count < total: + if old_count != count: + outfile.write("!!%s&%s&%s&%s&%d!!\n"%(name, user, hostname, dirname+" "+str(count)+"/"+str(total), (100*count)/total)) + outfile.flush() + time.sleep(2) + old_count = count + count = len(os.listdir(dirname)) +except: + if "NamedTemporaryFile" not in dir(tempfile): + os.remove(outfilename) + -- 2.34.1