serve: allow --daemon-postexec to be 'unlink:path' or 'none'
This patch changes the format of value of --daemon-postexec. Now it can be
either to unlink a file, or a no-op. The following patch will make chg to
use the no-op option.
--- a/mercurial/cmdutil.py Mon Feb 22 16:59:08 2016 +0000
+++ b/mercurial/cmdutil.py Mon Feb 22 17:30:02 2016 +0000
@@ -765,7 +765,7 @@
try:
if not runargs:
runargs = util.hgcmd() + sys.argv[1:]
- runargs.append('--daemon-postexec=%s' % lockpath)
+ runargs.append('--daemon-postexec=unlink:%s' % lockpath)
# Don't pass --cwd to the child process, because we've already
# changed directory.
for i in xrange(1, len(runargs)):
@@ -799,12 +799,16 @@
writepid(util.getpid())
if opts['daemon_postexec']:
- lockpath = opts['daemon_postexec']
+ inst = opts['daemon_postexec']
try:
os.setsid()
except AttributeError:
pass
- os.unlink(lockpath)
+ if inst.startswith('unlink:'):
+ lockpath = inst[7:]
+ os.unlink(lockpath)
+ elif inst != 'none':
+ raise error.Abort(_('invalid value for --daemon-postexec'))
util.hidewindow()
sys.stdout.flush()
sys.stderr.flush()