def main(argv=None): """Main entry point for xonsh cli.""" args = premain(argv) env = builtins.__xonsh_env__ shell = builtins.__xonsh_shell__ if args.mode == XonshMode.single_command: # run a single command and exit run_code_with_cache(args.command, shell.execer, mode='single') elif args.mode == XonshMode.script_from_file: # run a script contained in a file if os.path.isfile(args.file): sys.argv = args.args env['ARGS'] = [args.file] + args.args run_script_with_cache(args.file, shell.execer, glb=shell.ctx, loc=None, mode='exec') else: print('xonsh: {0}: No such file or directory.'.format(args.file)) elif args.mode == XonshMode.script_from_stdin: # run a script given on stdin code = sys.stdin.read() run_code_with_cache(code, shell.execer, glb=shell.ctx, loc=None, mode='exec') else: # otherwise, enter the shell env['XONSH_INTERACTIVE'] = True ignore_sigtstp() if not env['LOADED_CONFIG'] and not any(env['LOADED_RC_FILES']): print('Could not find xonsh configuration or run control files.') from xonsh import xonfig # lazy import xonfig.main(['wizard', '--confirm']) shell.cmdloop() postmain(args)
def main(argv=None): """Main entry point for xonsh cli.""" args = premain(argv) env = builtins.__xonsh_env__ shell = builtins.__xonsh_shell__ if args.mode == XonshMode.single_command: # run a single command and exit shell.default(args.command) elif args.mode == XonshMode.script_from_file: # run a script contained in a file if os.path.isfile(args.file): with open(args.file) as f: code = f.read() code = code if code.endswith('\n') else code + '\n' sys.argv = args.args env['ARGS'] = [args.file] + args.args code = shell.execer.compile(code, mode='exec', glbs=shell.ctx, filename=args.file) shell.execer.exec(code, mode='exec', glbs=shell.ctx) else: print('xonsh: {0}: No such file or directory.'.format(args.file)) elif args.mode == XonshMode.script_from_stdin: # run a script given on stdin code = sys.stdin.read() code = code if code.endswith('\n') else code + '\n' code = shell.execer.compile(code, mode='exec', glbs=shell.ctx, filename='<stdin>') shell.execer.exec(code, mode='exec', glbs=shell.ctx) else: # otherwise, enter the shell env['XONSH_INTERACTIVE'] = True ignore_sigtstp() if not env['LOADED_CONFIG'] and not any(env['LOADED_RC_FILES']): print('Could not find xonsh configuration or run control files.') from xonsh import xonfig # lazy import xonfig.main(['wizard', '--confirm']) shell.cmdloop() postmain(args)
def xonfig(args, stdin=None): """Runs the xonsh configuration utility.""" from xonsh.xonfig import main # lazy import return main(args)
def trace(args, stdin=None): """Runs the xonsh tracer utility.""" from xonsh.tracer import main # lazy import return main(args)