#!/usr/bin/env python import readline import os import tempfile import sys PATHNOTSET = True LANGNOTSET = True def getDirectorySize(directory): dir_size = 0 for (path, dirs, files) in os.walk(directory): for file in files: filename = os.path.join(path, file) dir_size += os.path.getsize(filename) return dir_size def controlFile(dir_size): controlFileData = """Package: maxr-original Version: 0.2.5-2 Architecture: all Maintainer: maxr-resinstaller Installed-Size: """ + str(dir_size) + """ Depends: maxr Replaces: maxr Section: games Priority: extra Homepage: http://www.maxr.org Description: M.A.X.R. - M.A.X. Original Data Set of M.A.X. files to provide the original look & feel """ return controlFileData def raw_input_with_default(prompt, default): def pre_input_hook(): readline.insert_text(default) readline.redisplay() readline.set_pre_input_hook(pre_input_hook) try: return raw_input(prompt) finally: readline.set_pre_input_hook(None) print "" print "------------------------------------" print "M.A.X.R. Original Resource Installer" print "------------------------------------" print "" while PATHNOTSET: ORIGMAX_PATH = raw_input_with_default("Specify the path containing the original data (f.e. CDROM): ", "/media/MAX") print "" if (os.path.isfile(ORIGMAX_PATH + "/max.res")): FOUNDRES = True PATHNOTSET = False else: if (os.path.isfile(ORIGMAX_PATH + "/max/max.res")): FOUNDRES = True ORIGMAX_PATH = ORIGMAX_PATH + "/max" PATHNOTSET = False else: FOUNDRES = False ORIGMAX_PATH = False LANGUAGES = ['english'] if (os.path.isdir(ORIGMAX_PATH + "/german")): LANGUAGES.append('german') if (os.path.isdir(ORIGMAX_PATH + "/french")): LANGUAGES.append('french') if (os.path.isdir(ORIGMAX_PATH + "/italian")): LANGUAGES.append('italian') if (len(LANGUAGES) > 1): while LANGNOTSET: LANGUAGESTRING = "" for x in LANGUAGES: LANGUAGESTRING = LANGUAGESTRING + x + ", " LANGUAGE = raw_input_with_default("Specify language (" + LANGUAGESTRING[:-2] + "): ", "english") if LANGUAGE in LANGUAGES: if (LANGUAGE != 'english'): ORIGMAXL_PATH = ORIGMAX_PATH + "/" + LANGUAGE LANGNOTSET = False TEMP_PATH=tempfile.mkdtemp() os.makedirs(TEMP_PATH + "/usr/share/maxr") os.makedirs(TEMP_PATH + "/usr/share/maxr/gfx") os.makedirs(TEMP_PATH + "/usr/share/maxr/fx") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/platform") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/energy_big") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_metal") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_missel") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_oil") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_ari") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/training") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/goldraff") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/landmine") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/energy_small") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/habitat") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/storage_gold") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_big") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/dock") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_turret") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_alien") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/mine") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/barracks") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_air") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/pad") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/hangar") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/mine_deep") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/radar") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_small") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/block") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/connector") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/seamine") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/shield") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/road") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/gun_aa") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/research") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/bridge") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/fac_ship") os.makedirs(TEMP_PATH + "/usr/share/maxr/buildings/depot") os.makedirs(TEMP_PATH + "/usr/share/maxr/mve") os.makedirs(TEMP_PATH + "/usr/share/maxr/fonts") os.makedirs(TEMP_PATH + "/usr/share/maxr/save") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/commando") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_plane") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/cargoship") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/konstrukt") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sea_minelayer") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/missel") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/fighter") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_tank") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_ship") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sub") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sub/sub") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/missel_ship") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/sea_transport") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_gold") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/alien_assault") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/air_transport") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/mobile_aa") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/apc") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/scanner") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/cluster") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/infantery") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/corvet") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/surveyor") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/scout") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/escort") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/tank") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/pionier") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/minelayer") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/assault") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_oil") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/gunboat") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/bomber") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/repair") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/bulldozer") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/trans_metal") os.makedirs(TEMP_PATH + "/usr/share/maxr/vehicles/awac") os.makedirs(TEMP_PATH + "/usr/share/maxr/voices") os.makedirs(TEMP_PATH + "/usr/share/maxr/languages") os.makedirs(TEMP_PATH + "/usr/share/maxr/sounds") os.makedirs(TEMP_PATH + "/usr/share/maxr/maps") os.makedirs(TEMP_PATH + "/usr/share/maxr/music") os.system("/usr/share/maxr/resinstaller " + ORIGMAX_PATH + " " + TEMP_PATH + "/usr/share/maxr/") os.system("/usr/share/maxr/resinstaller " + ORIGMAXL_PATH + " " + TEMP_PATH + "/usr/share/maxr/") print "" print "------------------------" print "Calculate directory size" print "------------------------" print "" os.makedirs(TEMP_PATH + "/DEBIAN") fout = open(TEMP_PATH + "/DEBIAN/control", "w") fout.write(controlFile(getDirectorySize(TEMP_PATH +"/usr"))) fout.close() print "" print "------------------------------------------" print "Generateing MD5SUMS (Could take some time)" print "------------------------------------------" print "" os.system("cd " + TEMP_PATH + " >/dev/null ; find . -type f ! -regex '.*/DEBIAN/.*' -printf '%P\\0' | xargs -r0 md5sum > DEBIAN/md5sums") print "" print "-----------------------" print "Generateing DEB package" print "-----------------------" print "" os.system("cd " + TEMP_PATH + " >/dev/null ; dpkg-deb -b . ../maxr-original_0.2.5-2_all.deb") os.system("rm -rf TEMP_PATH") print "" print "------------------------------------------------------------" print "Your package is ready at /tmp/maxr-original_0.2.5-2_all.deb " print "" print " Install it with dpkg -i /tmp/maxr-original_0.2.5-2_all.deb" print "------------------------------------------------------------" print ""