#!/bin/env python # sim-info -- information about simfactory # # Michael Thomas # Center for Computation & Technology # Louisiana State University # import sys, os, shutil ############################################ ## APP SPECIFIC DEFINES ## # # Usage when (-h, --help) is used, this is the first line showing how to call the app # optionGroups which option groups from etc/options to import. common is always imported. App = "sim-info.py" Usage = "usage: %prog command" optionGroups = ['sim-info'] Purpose = "display some convienient information about simfactory" ############################################ ############################################ ## INIT ## if os.path.basename(sys.argv[0]) == App: rp = os.path.realpath(__file__) paths = rp.split(os.sep) paths.pop() paths.pop() global BASE_PATH BASE_PATH = os.sep.join(paths) sys.path.append(BASE_PATH) from lib import * global known_commands global known_help known_commands = ['list-machines', 'print-machine', 'print-mdb', 'list-configurations'] known_help = {'list-machines':'list all the machines in the machine database', 'print-machine':'print a machine entry from the machine database', 'print-mdb':'print parsable mdb', 'list-configurations':'list simfactory cactus configurations'} def buildUsageString(): global Usage global known_commands global known_help cmdString = "%s\n\n\nAvailable Commands:\n" % Usage iString = [] for kk in known_commands: help = known_help[kk] ss = " %s\t\t\t%s" % (kk, help) iString.append(ss) cmdString = "%s%s" % (cmdString, "\n".join(iString)) return cmdString ############################### INFO FUNCTIONS ############################### def list_machines(): print "list_machines" def print_machine(): print "print_machine" def print_mdb(): print "print_mdb" def list_configurations(): print "list_configurations" ############################### MAIN ############################### def main(env): global OptionsManager global ConfigurationDatabase global SimLib global DefineDatabase global SimEnvironment global known_commands SimEnvironment = env OptionsManager = SimEnvironment.OptionsManager ConfigurationDatabase = SimEnvironment.ConfigurationDatabase SimLib = SimEnvironment.SimLib DefineDatabase = SimEnvironment.DefineDatabase ############################################ ## HEADER ## if os.path.basename(SimEnvironment.EXECUTABLE) == App: print "sim-info: %s" % Purpose print "mdb: %s" % SimEnvironment.mdb print "cdb: %s" % SimEnvironment.cdb if SimEnvironment.udb != None: print "udb: %s" % SimEnvironment.udb print command = OptionsManager.args[0] if command not in known_commands: print "Error, uknown sim-info command %s" % command sys.exit(1) # - not a valid function character command = command.replace("-", "_") # execute the reqisite function. globals()[command]() # only run if you are App if os.path.basename(sys.argv[0]) == App: global SimEnvironment SimEnvironment = simenv.SimEnvironment(BASE_PATH, os.path.realpath(sys.argv[0])) SimEnvironment.initApp(usageString=buildUsageString(), optionGroups=optionGroups) main(SimEnvironment)