# HG changeset patch # User Jun Wu # Date 1457489260 0 # Node ID c90cfe76e0245c843346e1ce43d355c9803903d2 # Parent 155e3308289ce6eb1c2edc194ae458824473f61e serve: accept multiple values for --daemon-postexec The next patch will add another postexec command: chdir, which can be used together with unlink. This patch changes the option type of --daemon-postexec from string to list to accept multiple commands. The error message of invalid --daemon-postexec value is also changed to include the actual invalid value. diff -r 155e3308289c -r c90cfe76e024 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Sat Feb 27 12:56:26 2016 +0100 +++ b/mercurial/cmdutil.py Wed Mar 09 02:07:40 2016 +0000 @@ -827,16 +827,17 @@ writepid(util.getpid()) if opts['daemon_postexec']: - inst = opts['daemon_postexec'] try: os.setsid() except AttributeError: pass - if inst.startswith('unlink:'): - lockpath = inst[7:] - os.unlink(lockpath) - elif inst != 'none': - raise error.Abort(_('invalid value for --daemon-postexec')) + for inst in opts['daemon_postexec']: + if inst.startswith('unlink:'): + lockpath = inst[7:] + os.unlink(lockpath) + elif inst != 'none': + raise error.Abort(_('invalid value for --daemon-postexec: %s') + % inst) util.hidewindow() sys.stdout.flush() sys.stderr.flush() diff -r 155e3308289c -r c90cfe76e024 mercurial/commands.py --- a/mercurial/commands.py Sat Feb 27 12:56:26 2016 +0100 +++ b/mercurial/commands.py Wed Mar 09 02:07:40 2016 +0000 @@ -6320,7 +6320,7 @@ [('A', 'accesslog', '', _('name of access log file to write to'), _('FILE')), ('d', 'daemon', None, _('run server in background')), - ('', 'daemon-postexec', '', _('used internally by daemon mode')), + ('', 'daemon-postexec', [], _('used internally by daemon mode')), ('E', 'errorlog', '', _('name of error log file to write to'), _('FILE')), # use string type, then we can check if something was passed ('p', 'port', '', _('port to listen on (default: 8000)'), _('PORT')), diff -r 155e3308289c -r c90cfe76e024 tests/dumbhttp.py --- a/tests/dumbhttp.py Sat Feb 27 12:56:26 2016 +0100 +++ b/tests/dumbhttp.py Wed Mar 09 02:07:40 2016 +0000 @@ -38,7 +38,7 @@ parser.add_option('-f', '--foreground', dest='foreground', action='store_true', help='do not start the HTTP server in the background') - parser.add_option('--daemon-postexec') + parser.add_option('--daemon-postexec', action='append') (options, args) = parser.parse_args()