X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/chopwood/blobdiff_plain/2a875c57bf6b595d9efc776d698b348e8befdd8d..47752597d1ac4dcf0f7edd132869e32ad900955b:/chpwd diff --git a/chpwd b/chpwd index 4d70fa8..65ae873 100755 --- a/chpwd +++ b/chpwd @@ -38,6 +38,7 @@ import config as CONF; CFG = CONF.CFG import dbmaint as D import httpauth as HA import output as O; OUT = O.OUT +import service as S import subcommand as SC import util as U @@ -229,7 +230,7 @@ if __name__ == '__main__': OPTS, args = OPTPARSE.parse_args() CONF.loadconfig(OPTS.config) cmd = SL.split(ENV['SSH_ORIGINAL_COMMAND']) - if args: raise ExpectedError, (500, 'Unexpected arguments via SSH') + if args: raise U.ExpectedError, (500, 'Unexpected arguments via SSH') return cmd if 'CHPWD_SSH_USER' in ENV: @@ -239,7 +240,7 @@ if __name__ == '__main__': with cli_errors(): cmd = ssh_setup() CU.set_user(ENV['CHPWD_SSH_USER']) - SERVICES['master'].find(USER) + S.SERVICES['master'].find(CU.USER) with OUT.redirect_to(O.FileOutput()): OPTPARSE.dispatch('userv', cmd) @@ -252,8 +253,8 @@ if __name__ == '__main__': try: cmd = ssh_setup() with OUT.redirect_to(O.RemoteOutput()): - OPTPARSE.dispatch('remote', map(urldecode, cmd)) - except ExpectedError, e: + OPTPARSE.dispatch('remote', map(CGI.urldecode, cmd)) + except U.ExpectedError, e: print 'ERR', e.code, e.msg else: print 'OK' @@ -263,7 +264,7 @@ if __name__ == '__main__': ## file, but we can't do much about it from here. with cli_errors(): - raise ExpectedError, (400, "Unabled to determine SSH context") + raise U.ExpectedError, (400, "Unabled to determine SSH context") else: ## Plain old command line, apparently. We default to administration @@ -278,6 +279,7 @@ if __name__ == '__main__': ctx = OPTS.context if OPTS.user: CU.set_user(OPTS.user) + CGI.STATE.kw['user'] = OPTS.user if ctx is None: ctx = 'userv' else: D.opendb()