#!/usr/bin/env python import os import re import shutil import struct import sys import tempfile CAB_HEADER = "MSCE".encode("ascii") ARCHITECTURES = { "shx-sh3": 103, "shx-sh4": 104, "i386": 386, "i486": 486, "i586": 586, "powerpc-601": 601, "powerpc-603": 603, "powerpc-604": 604, "powerpc-620": 620, "powerpc-mpc821": 821, "arm720": 1824, "arm820": 2080, "arm920": 2336, "strongarm": 2577, "mips-r4000": 4000, "sh3": 10003, "sh3e": 10004, "sh4": 10005, "alpha-21064": 21064, "arm7tdmi": 70001, } DIR_VARIABLES = { "PROGRAMS": "%CE1%", # \Program Files "WINDOWS": "%CE2%", # \Windows "DESKTOP": "%CE3%", # \Windows\Desktop "STARTUP": "%CE4%", # \Windows\StartUp "DOCUMENTS": "%CE5%", # \My Documents "PROGRAMS_ACCESSORIES": "%CE6%", # \Program Files\Accessories "PROGRAMS_COMMUNICATIONS": "%CE7%", # \Program Files\Communications "PROGRAMS_GAMES": "%CE8%", # \Program Files\Games "PROGRAMS_OUTLOOK": "%CE9%", # \Program Files\Pocket Outlook "PROGRAMS_OFFICE": "%CE10%", # \Program Files\Office "WINDOWS_PROGRAMS": "%CE11%", # \Windows\Programs "WINDOWS_ACCESSORIES": "%CE12%", # \Windows\Programs\Accessories "WINDOWS_COMMUNICATIONS": "%CE13%", # \Windows\Programs\Communications "WINDOWS_GAMES": "%CE14%", # \Windows\Programs\Games "FONTS": "%CE15%", # \Windows\Fonts "RECENT": "%CE16%", # \Windows\Recent "FAVORITES": "%CE17%", # \Windows\Favorites "START_PROGRAMS": "%CE11%", # \Windows\Start Menu\Programs "START_ACCESSORIES": "%CE12%", # \Windows\Start Menu\Accessories "START_COMMUNICATIONS": "%CE13%", # \Windows\Start Menu\Communications "START_GAMES": "%CE14%", # \Windows\Start Menu\Games "START": "%CE17%", # \Windows\Start Menu } def write_int16(f, value): f.write(struct.pack(" " % sys.argv[0]) sys.exit(0) if sys.argv[1] == "-d": print_dependencies(sys.argv[2]) else: config = read_config_file(sys.argv[1]) cab_file = CabFile(config) cab_file.write(sys.argv[2])