- #!/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 ""