#!/usr/bin/env python # Helper script when freezing Pmw applications. It concatenates all # Pmw megawidget files into a single file, 'Pmw.py', in the current # directory. The script must be called with one argument, being the # path to the 'lib' directory of the required version of Pmw. # To freeze a Pmw application, you will also need to copy the # following files to the application directory before freezing: # # PmwBlt.py PmwColor.py import os import regsub import string import sys # The order of these files is significant. Files which reference # other files must appear later. Files may be deleted if they are not # used. ## files = [ ## 'Dialog', 'TimeFuncs', 'Balloon', 'ButtonBox', 'EntryField', ## 'Group', 'LabeledWidget', 'MenuBar', 'MessageBar', 'MessageDialog', ## 'NoteBookR', 'NoteBookS', 'OptionMenu', 'PanedWidget', 'PromptDialog', ## 'RadioSelect', 'ScrolledCanvas', 'ScrolledField', 'ScrolledFrame', ## 'ScrolledListBox', 'ScrolledText', 'SelectionDialog', 'TextDialog', ## 'TimeCounter', 'AboutDialog', 'ComboBox', 'ComboBoxDialog', 'Counter', ## 'CounterDialog', ## ] files = [ 'Dialog', 'TimeFuncs', 'Balloon', 'ButtonBox', 'EntryField', 'Group', # 'PanedWidget', 'ScrolledListBox', 'ComboBox', 'ComboBoxDialog', ] # Set this to 0 if you do not use any of the Pmw.Color functions: needColor = 0 # Set this to 0 if you do not use any of the Pmw.Blt functions: needBlt = 0 def expandLinks(path): if not os.path.isabs(path): path = os.path.join(os.getcwd(), path) while 1: if not os.path.islink(path): break dir = os.path.dirname(path) path = os.path.join(dir, os.readlink(path)) return path def mungeFile(file): # Read the file and modify it so that it can be bundled with the # other Pmw files. file = 'Pmw' + file + '.py' text = open(os.path.join(srcdir, file)).read() text = regsub.gsub('import Pmw\>', '', text) text = regsub.gsub('INITOPT = Pmw.INITOPT', '', text) text = regsub.gsub('\