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