From 10139d9609e13ba3ac5a5cf8bd10907581e9eda0 Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Mon, 26 Oct 2009 01:17:57 +0000 Subject: bcfg2-info: Implement debug script mode git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5504 ce84e21b-d406-0410-9b95-82705330c041 --- src/sbin/bcfg2-info | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/sbin') diff --git a/src/sbin/bcfg2-info b/src/sbin/bcfg2-info index 2dad05fd4..801fb1fc1 100755 --- a/src/sbin/bcfg2-info +++ b/src/sbin/bcfg2-info @@ -5,6 +5,7 @@ __revision__ = '$Revision$' from code import InteractiveConsole import cmd import errno +import getopt import logging import lxml.etree import os @@ -104,11 +105,29 @@ class infoCore(cmd.Cmd, Bcfg2.Server.Core.Core): except: logger.error("command failure", exc_info=1) - def do_debug(self, _): + def do_debug(self, args): + try: + opts, _ = getopt.getopt(args.split(), 'nf:') + except: + print "Usage: debug [-n] [-f ]" + return self.cont = False - print("dropping to python interpreter; press ^D to resume") + scriptmode = False + interactive = True + for opt in opts: + if opt[0] == '-f': + scriptmode = True + spath = opt[1] + elif opt[0] == '-n': + interactive = False sh = InteractiveConsole(locals()) - sh.interact() + if scriptmode: + for command in [c.strip() for c in open(spath).readlines()]: + if command: + sh.push(command) + if interactive: + print("dropping to python interpreter; press ^D to resume") + sh.interact() def do_quit(self, _): """Exit program. -- cgit v1.2.3-1-g7c22