1 """Import a module while pretending its name is __main__. This
2 can be used to run scripts from the PackedLib resource file while pretending
3 they have been double-clicked."""
24 def import_as_main(name
):
25 fp
, path
, (suffix
, mode
, type) = imp
.find_module(name
)
26 if type == imp
.PY_SOURCE
:
27 imp
.load_source('__main__', path
, fp
)
28 elif type == imp
.PY_COMPILED
:
29 imp
.load_compiled('__main__', path
, fp
)
30 elif type == imp
.PY_RESOURCE
:
31 imp
.load_resource('__main__', path
)
34 d
= Dlg
.GetNewDialog(DIALOG_ID
, -1)
35 wdir
= stdin
= stdout
= None
38 tp
, in_c_h
, rect
= d
.GetDialogItem(STDIN_CONS
)
39 tp
, in_f_h
, rect
= d
.GetDialogItem(STDIN_FILE
)
40 tp
, out_c_h
, rect
= d
.GetDialogItem(STDOUT_CONS
)
41 tp
, out_f_h
, rect
= d
.GetDialogItem(STDOUT_FILE
)
42 tp
, pause_h
, rect
= d
.GetDialogItem(PAUSE
)
43 in_c_h
= in_c_h
.as_Control()
44 in_f_h
= in_f_h
.as_Control()
45 out_c_h
= out_c_h
.as_Control()
46 out_f_h
= out_f_h
.as_Control()
47 pause_h
= pause_h
.as_Control()
50 in_c_h
.SetControlValue(not stdin
)
51 in_f_h
.SetControlValue(not not stdin
)
52 out_c_h
.SetControlValue(not stdout
)
53 out_f_h
.SetControlValue(not not stdout
)
54 pause_h
.SetControlValue(pause
)
56 n
= Dlg
.ModalDialog(None)
64 fss
, ok
= macfs
.StandardGetFile('TEXT')
67 elif n
== STDOUT_FILE
:
68 fss
, ok
= macfs
.StandardPutFile('stdout:')
71 elif n
== WORKING_DIR
:
72 fss
, ok
= macfs
.GetDirectory()
78 tp
, h
, rect
= d
.GetDialogItem(SCRIPTNAME
)
79 name
= Dlg
.GetDialogItemText(h
)
80 tp
, h
, rect
= d
.GetDialogItem(ARGV
)
81 argv
= Dlg
.GetDialogItemText(h
)
82 return name
, argv
, stdin
, stdout
, wdir
, pause
88 Res
.OpenResFile('RunLibScript.rsrc')
90 pass # Assume we're an applet already
91 name
, argv
, stdin
, stdout
, wdir
, pause
= interact()
94 sys
.argv
= [name
] + string
.split(argv
)
96 sys
.stdin
= open(stdin
.as_pathname())
98 sys
.stdout
= open(stdout
.as_pathname(), 'w')
100 os
.chdir(wdir
.as_pathname())
109 if __name__
== '__main__':