00001 import sys, os, platform
00002 import optparse
00003
00004 interactive=False
00005
00006 def show_help(option, opt, value, parser):
00007 parser.print_help()
00008 sys.exit(-1)
00009
00010 def interactive_flag(option, opt, value, parser):
00011 pass
00012
00013 usage = 'usage: ost [ost options] [script to execute] [script parameters]'
00014 class OstOptionParser(optparse.OptionParser):
00015 def __init__(self, **kwargs):
00016 optparse.OptionParser.__init__(self, **kwargs)
00017 def exit(self, status_code, error_message):
00018 print error_message,
00019 QtGui.QApplication.instance().exit()
00020 sys.exit(-1)
00021
00022 parser=OstOptionParser(usage=usage,conflict_handler="resolve")
00023 parser.add_option("-i", "--interactive", action="callback", callback=interactive_flag, help="start interpreter interactively (must be first parameter, ignored otherwise)")
00024 parser.add_option("-h", "--help", action="callback", callback=show_help, help="show this help message and exit")
00025 parser.add_option("-v", "--verbosity_level", action="store", type="int", dest="vlevel", default=0, help="sets the verbosity level [default: %default]")
00026 parser.disable_interspersed_args()
00027 (options, args) = parser.parse_args()
00028
00029 if platform.machine()=='x86_64':
00030 sys.path.insert(0, os.getenv('DNG_ROOT')+'/lib64/openstructure')
00031 else:
00032 sys.path.insert(0,os.getenv('DNG_ROOT')+'/lib/openstructure')
00033
00034 from ost import *
00035 import ost
00036
00037 ost.SetPrefixPath(os.getenv('DNG_ROOT'))
00038 def _InitRuleBasedBuilder():
00039 compound_lib_path=os.path.join(ost.GetSharedDataPath(), 'compounds.chemlib')
00040 if os.path.exists(compound_lib_path):
00041 conop_inst=conop.Conopology.Instance()
00042 compound_lib=conop.CompoundLib.Load(compound_lib_path)
00043 conop_inst.RegisterBuilder(conop.RuleBasedBuilder(compound_lib), 'RBB')
00044 conop_inst.SetDefaultBuilder('RBB')
00045
00046
00047
00048 _InitRuleBasedBuilder()
00049 import os.path
00050 HistoryFile=os.path.expanduser('~/.ost_history')
00051 InGUIMode=False
00052
00053 sys.ps1='ost> '
00054 sys.ps2='..... '
00055 sys.argv=sys.argv[1:]
00056 home = os.getenv('HOME') or os.getenv('USERPROFILE')
00057 _ostrc=os.path.join(home, '.ostrc')
00058 if os.path.exists(_ostrc):
00059 try:
00060 exec(open(_ostrc))
00061 except Exception, e:
00062 print e
00063
00064 PushVerbosityLevel(options.vlevel)
00065
00066 sys.path.append(".")
00067
00068 if len(parser.rargs)>0 :
00069 script=parser.rargs[0]
00070 sys_argv_backup=sys.argv
00071 sys.argv=parser.rargs
00072 try:
00073 execfile(script)
00074 finally:
00075 sys.argv=sys_argv_backup
00076