From: Digital X. <dig...@us...> - 2007-03-21 15:33:28
|
Update of /cvsroot/openrpg/openrpg1 In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv23728 Added Files: rollback.py Log Message: Added code to support rolling back an update --- NEW FILE: rollback.py --- from orpg.orpg_wx import * import traceback import md5 import os from string import * from os.path import join, getsize import orpg.dirpath class myFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, "Update Rollback Tool", style=wx.FRAME_NO_TASKBAR | wx.STAY_ON_TOP | wx.DEFAULT_FRAME_STYLE) self.SetBackgroundColour(wx.WHITE) self.Freeze() sizer = wx.BoxSizer(wx.VERTICAL) self.filelist = wx.TextCtrl(self, wx.ID_ANY, size=(300,400), style=wx.TE_MULTILINE | wx.TE_READONLY) self.rollbackBtn = wx.Button(self, wx.ID_ANY, "Roll Back") self.Bind(wx.EVT_BUTTON, self.OnRollback, self.rollbackBtn) sizer.Add(self.filelist, 1, wx.EXPAND) sizer.Add(self.rollbackBtn, 0, wx.EXPAND) self.SetSizer(sizer) self.SetAutoLayout(True) self.Fit() self.files = [] self.CheckRollback() self.Thaw() def CheckRollback(self): for root, dirs, files in os.walk(orpg.dirpath.dir_struct["home"]): for name in files: if name.find('.rollback') != -1: wx.Yield() filename = root + os.sep + name self.files.append(filename) self.filelist.Value = name.replace('.rollback', '') + "\n" + self.filelist.Value def OnRollback(self, evt): for file in self.files: os.remove(file.replace('.rollback', '')) os.rename(file, file.replace('.rollback', '')) self.Close() class BlankApp(wx.App): def OnInit(self): self.frame = myFrame() self.frame.Show() self.SetTopWindow(self.frame) return True if __name__ == "__main__": app = BlankApp(0) app.MainLoop() |