pass user configuration to subcommand handler functions
This commit is contained in:
parent
59544d30a6
commit
638137518d
48
jsvn
48
jsvn
@ -545,7 +545,7 @@ def find_common_ancestor(svn, url1, path1, url2, path2):
|
||||
###########################################################################
|
||||
# Subcommand Handlers #
|
||||
###########################################################################
|
||||
def add(argv, svn, out):
|
||||
def add(argv, svn, out, config):
|
||||
if len(argv) < 2:
|
||||
# do not handle if no targets are passed
|
||||
return RET_REEXEC
|
||||
@ -570,7 +570,7 @@ def add(argv, svn, out):
|
||||
Popen([svn, 'add', path], stdout=out).wait()
|
||||
return RET_OK
|
||||
|
||||
def bisect(argv, svn, out):
|
||||
def bisect(argv, svn, out, config):
|
||||
def usage():
|
||||
sys.stderr.write('''Usage: bisect <operation>
|
||||
Operations:
|
||||
@ -623,11 +623,11 @@ Operations:
|
||||
revs = get_revs_between(good_rev, bad_rev)
|
||||
if len(revs) < 1:
|
||||
if get_svn_wc_revision(svn) != bad_rev:
|
||||
update(['update', '-r%d' % bad_rev], svn, out)
|
||||
update(['update', '-r%d' % bad_rev], svn, out, config)
|
||||
out.write('The first bad revision is %d\n' % get_svn_wc_revision(svn))
|
||||
return
|
||||
rev = revs[len(revs) / 2]
|
||||
update(['update', '-r%d' % rev], svn, out)
|
||||
update(['update', '-r%d' % rev], svn, out, config)
|
||||
out.write('Bisect: inspecting revision %d, %d revisions remaining\n'
|
||||
% (rev, len(revs)))
|
||||
def init_err():
|
||||
@ -654,10 +654,10 @@ Operations:
|
||||
if rev < 0:
|
||||
return init_err()
|
||||
rm_bisect_files()
|
||||
update(['update', '-r%d' % rev], svn, out)
|
||||
update(['update', '-r%d' % rev], svn, out, config)
|
||||
return RET_OK
|
||||
|
||||
def branch(argv, svn, out):
|
||||
def branch(argv, svn, out, config):
|
||||
argv = argv[1:] # strip 'branch' command
|
||||
options, args = getopt.getopt(argv, 'ds')
|
||||
origin = get_svn_top_level(svn)
|
||||
@ -701,10 +701,10 @@ def branch(argv, svn, out):
|
||||
branch_path = root + '/branches/' + branch_name
|
||||
Popen([svn, 'copy', origin, branch_path, '-m', comment], stdout=out).wait()
|
||||
if do_switch:
|
||||
return switch(['switch', branch_name], svn, out)
|
||||
return switch(['switch', branch_name], svn, out, config)
|
||||
return RET_OK
|
||||
|
||||
def tag(argv, svn, out):
|
||||
def tag(argv, svn, out, config):
|
||||
origin = get_svn_top_level(svn)
|
||||
root = get_svn_root_url(svn)
|
||||
if origin == '' or root == '':
|
||||
@ -740,7 +740,7 @@ def tag(argv, svn, out):
|
||||
Popen([svn, 'copy', origin, tag_path, '-m', comment], stdout=out).wait()
|
||||
return RET_OK
|
||||
|
||||
def switch(argv, svn, out):
|
||||
def switch(argv, svn, out, config):
|
||||
if len(argv) < 2:
|
||||
return RET_REEXEC
|
||||
switched = False
|
||||
@ -777,7 +777,7 @@ def switch(argv, svn, out):
|
||||
filter_update(pout, out)
|
||||
return RET_OK
|
||||
|
||||
def merge(argv, svn, out):
|
||||
def merge(argv, svn, out, config):
|
||||
if len(argv) < 2:
|
||||
return RET_REEXEC
|
||||
root = get_svn_root_url(svn)
|
||||
@ -799,7 +799,7 @@ def merge(argv, svn, out):
|
||||
root + '/branches/' + argv[1] + path, '.'], stdout=out).wait()
|
||||
return RET_OK
|
||||
|
||||
def watch_lock(argv, svn, out):
|
||||
def watch_lock(argv, svn, out, config):
|
||||
if len(argv) < 2:
|
||||
return RET_ERR
|
||||
path = argv[1]
|
||||
@ -840,7 +840,7 @@ def watch_lock(argv, svn, out):
|
||||
''')
|
||||
return RET_OK
|
||||
|
||||
def users(argv, svn, out):
|
||||
def users(argv, svn, out, config):
|
||||
path = '.'
|
||||
if len(argv) > 1:
|
||||
path = argv[1]
|
||||
@ -860,7 +860,7 @@ def users(argv, svn, out):
|
||||
out.write("%8d %s\n" % (v[1], v[0]))
|
||||
return RET_OK
|
||||
|
||||
def binaries(argv, svn, out, base_path = '.'):
|
||||
def binaries(argv, svn, out, config, base_path = '.'):
|
||||
for ent in os.listdir(base_path):
|
||||
if ent in ('.', '..', '.svn'):
|
||||
continue
|
||||
@ -882,10 +882,10 @@ def binaries(argv, svn, out, base_path = '.'):
|
||||
out.write(ent_path)
|
||||
out.write('\n')
|
||||
elif os.path.isdir(ent_path):
|
||||
binaries(argv, svn, out, os.sep.join([base_path, ent]))
|
||||
binaries(argv, svn, out, config, os.sep.join([base_path, ent]))
|
||||
return RET_OK
|
||||
|
||||
def lockable(argv, svn, out):
|
||||
def lockable(argv, svn, out, config):
|
||||
if len(argv) >= 2 and argv[1] == '--status':
|
||||
for ob in argv[2:]:
|
||||
ob_path = os.sep.join([base_path, ob])
|
||||
@ -910,7 +910,7 @@ def lockable(argv, svn, out):
|
||||
set_svn_property(svn, 'svn:needs-lock', '*', ob_path)
|
||||
return RET_OK
|
||||
|
||||
def diff(argv, svn, out):
|
||||
def diff(argv, svn, out, config):
|
||||
doing_summarize = '--summarize' in argv
|
||||
for i, v in enumerate(argv):
|
||||
m = re.match('(.*?)(\.\.\.?)(.*)$', v)
|
||||
@ -941,7 +941,7 @@ def diff(argv, svn, out):
|
||||
colordiff(out, line)
|
||||
return RET_OK
|
||||
|
||||
def log(argv, svn, out):
|
||||
def log(argv, svn, out, config):
|
||||
filters = []
|
||||
pretty = 'default'
|
||||
for i, v in enumerate(argv):
|
||||
@ -1031,12 +1031,12 @@ def log(argv, svn, out):
|
||||
out.write('\n')
|
||||
return RET_OK
|
||||
|
||||
def update(argv, svn, out):
|
||||
def update(argv, svn, out, config):
|
||||
pout = Popen([svn] + argv, stdout=PIPE).stdout
|
||||
filter_update(pout, out)
|
||||
return RET_OK
|
||||
|
||||
def status(argv, svn, out):
|
||||
def status(argv, svn, out, config):
|
||||
external = ''
|
||||
external_printed = True
|
||||
something_printed = False
|
||||
@ -1076,7 +1076,7 @@ def status(argv, svn, out):
|
||||
something_printed = True
|
||||
return RET_OK
|
||||
|
||||
def externals(argv, svn, out):
|
||||
def externals(argv, svn, out, config):
|
||||
pout = Popen([svn, 'status'], stdout=PIPE).stdout
|
||||
for line in iter(pout.readline, ''):
|
||||
if re.match(STATUS_LINE_REGEX, line):
|
||||
@ -1084,7 +1084,7 @@ def externals(argv, svn, out):
|
||||
out.write(line[8:])
|
||||
return RET_OK
|
||||
|
||||
def stash(argv, svn, out):
|
||||
def stash(argv, svn, out, config):
|
||||
argv = argv[1:] # strip 'stash' command
|
||||
action = 'save'
|
||||
if len(argv) >= 1:
|
||||
@ -1294,11 +1294,11 @@ def stash(argv, svn, out):
|
||||
out.write('Unknown action "%s"\n' % action)
|
||||
return RET_OK
|
||||
|
||||
def root(argv, svn, out):
|
||||
def root(argv, svn, out, config):
|
||||
out.write(get_svn_root_url(svn) + '\n')
|
||||
return RET_OK
|
||||
|
||||
def url(argv, svn, out):
|
||||
def url(argv, svn, out, config):
|
||||
path = '.'
|
||||
if len(argv) > 1:
|
||||
path = argv[1]
|
||||
@ -1420,7 +1420,7 @@ def do_cmd(argv, realsvn, config, expand=True):
|
||||
|
||||
do_native_exec = True
|
||||
if argv[0] in handlers:
|
||||
r = handlers[argv[0]](argv, realsvn, out)
|
||||
r = handlers[argv[0]](argv, realsvn, out, config)
|
||||
if r == RET_OK or r == RET_ERR:
|
||||
do_native_exec = False
|
||||
elif argv[0].startswith('__'):
|
||||
|
Loading…
x
Reference in New Issue
Block a user