home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / p / python / !Py_New / py / Py_New < prev   
Text File  |  1996-11-19  |  2KB  |  99 lines

  1. # Create a new Python application
  2.  
  3. import tbevent
  4. import riscospath
  5. import os
  6. import regsub
  7. import sprite
  8. import sys
  9. from sys import argv,exit
  10. import saveas
  11.  
  12. name='App'
  13. date='Today'
  14.  
  15. def copyfile(inn,out):
  16.     os.system("copy "+inn+" "+out+" A~C~DF~L~N~P~Q~R~S~T~V")
  17.  
  18. def savesprite(inn,out):
  19.     print "ss",inn,out
  20.     sa=sprite.Area(500)
  21.     sa.load(inn)
  22.     s=sprite.Sprite(sa,"!name")
  23.     s.rename("!"+name)
  24.     s=sprite.Sprite(sa,"sm!name")
  25.     s.rename("sm!"+name)
  26.     sa.save(out)
  27.  
  28. def translate(inn,out,type):
  29.     print "translate",inn,out,type
  30.     infile=open(inn,'r')
  31.     outfile=open(out,'w')
  32.     while 1:
  33.           r=infile.readline()
  34.           if r=='':
  35.              break
  36.           r=regsub.gsub("<NAME>",name,r)
  37.           r=regsub.gsub("<DATE>",date,r)
  38.           outfile.write(r)
  39.     infile.close()
  40.     outfile.close()
  41.     os.settype(out,type)
  42.  
  43. def dosave(dir):
  44.     print "dosave",dir,name
  45.     os.mkdir(dir+'.!'+name,0)
  46.     outpath=dir+'.!'+name+'.'
  47.     inpath="<Py_New$Dir>.model."
  48.     os.mkdir(outpath+'py',0)
  49.     os.mkdir(outpath+'pyc',0)
  50.     translate(inpath+"!Boot",outpath+"!Boot","Obey")
  51.     translate(inpath+"!Run",outpath+"!Run","Obey")
  52.     translate(inpath+"!RunImage",outpath+"!RunImage","Text")
  53.     translate(inpath+"Messages",outpath+"Messages","Text")
  54.     translate(inpath+"py.NAME",outpath+"py."+name,"Text")
  55.     translate(inpath+"py.events",outpath+"py.events","Text")
  56.     savesprite(inpath+"!Sprites",outpath+"!Sprites")
  57.     savesprite(inpath+"!Sprites22",outpath+"!Sprites22")
  58.     copyfile(inpath+"res",outpath+"res")
  59.     return 1
  60.  
  61. def save(box):
  62.     global name,date
  63.     date=os.getenv("sys$date")
  64.     try:
  65.         fname=box.getfilename()
  66.         dir,leaf=riscospath.split(fname)
  67.         name=leaf[1:]
  68.         good=dosave(dir)
  69.     except:
  70.         print "failed"
  71.         print sys.exc_type
  72.         print sys.exc_value
  73.         print sys.exc_traceback
  74.         good=0
  75.     try:
  76.         box.filesavecompleted(good,name)
  77.     except:
  78.         pass
  79.  
  80. class Orphans:
  81.       actions={}
  82.       def __init__(self):
  83.           tbevent.tbclasses[0]=self
  84.       def E_SaveToFile(self):
  85.           save(self.box)
  86.       def E_ObjectAutoCreated(self):
  87.           s=tbevent.wblock.nullstring(16)
  88.           if s=="SaveAs":
  89.              self.box=saveas.SaveAs(tbevent.idblock[4])
  90.       def E_Q_Quit(self):
  91.           exit()
  92.  
  93. tbevent.initialise("<Py_New$Dir>")
  94.  
  95. oi=Orphans()
  96.  
  97. while 1:
  98.       tbevent.poll()
  99.