Skip to content

Commit fa8a52e

Browse files
Vladimir Kotalahornace
authored andcommitted
determine lock file name based on program arguments
fixes #3728
1 parent 9f1e7ab commit fa8a52e

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

tools/src/main/python/opengrok_tools/projadm.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import sys
3333
import tempfile
3434
from os import path
35+
from hashlib import sha1
3536

3637
from filelock import Timeout, FileLock
3738

@@ -220,6 +221,19 @@ def project_delete(logger, project, uri, doit=True, deletesource=False,
220221
logger.error("Failed to remove {}: {}".format(sourcedir, e))
221222

222223

224+
def get_lock_file(args):
225+
project_list = list()
226+
project_list.extend(args.add)
227+
project_list.extend(args.delete)
228+
if len(project_list) == 0:
229+
name = "refresh"
230+
else:
231+
name = sha1("".join(project_list).encode()).hexdigest()
232+
233+
return path.join(tempfile.gettempdir(),
234+
path.basename(sys.argv[0]) + "-" + name + ".lock")
235+
236+
223237
def main():
224238
parser = argparse.ArgumentParser(description='project management.',
225239
formatter_class=argparse.
@@ -329,8 +343,7 @@ def main():
329343
sys.exit(FAILURE_EXITVAL)
330344
logger.debug("web application URI = {}".format(uri))
331345

332-
lock = FileLock(path.join(tempfile.gettempdir(),
333-
path.basename(sys.argv[0]) + ".lock"))
346+
lock = FileLock(get_lock_file(args))
334347
try:
335348
with lock.acquire(timeout=0):
336349
if args.add:

0 commit comments

Comments
 (0)