From b20495668e05c3a4c1bec2418f78bc1e1feb1c4e Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Wed, 4 Mar 2009 15:25:15 +0100 Subject: [PATCH] Add interlocking so we don't run the script more than once --- reposync.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/reposync.py b/reposync.py index fd133da..5fbb7af 100755 --- a/reposync.py +++ b/reposync.py @@ -184,10 +184,25 @@ class SyncMethodGit(SyncMethod): self.system("git fetch %s" % self.remoteurl) os.chdir(savedir) +class LockFile: + def __init__(self, filename): + self.filename = None + if os.path.isfile(filename): + raise Exception("Script is already running (says interlock file %s)" % + filename) + self.filename = filename + f = open(self.filename, "w") + f.writelines(('Interlock file', )) + f.close() + + def __del__(self): + if self.filename: + os.remove(self.filename) if __name__ == "__main__": c = ConfigParser.ConfigParser() c.read("pggit.settings") + lock = LockFile("%s/repos/.reposync_interlock" % c.get("paths", "githome")) db = psycopg2.connect(c.get('database','db')) RepoSync(db, c).sync() -- 2.39.5