X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=nt%2Finstaller%2FWise%2Fpre_wise.py;h=4bbd1a47062bee87ff6a3ec53d9f975b19f65381;hb=1ae585ef4d94620438f47233a32e6e04c6d338c2;hp=566e5c50b479a61a7c621eddd6d8ba1698bef7ae;hpb=430e0db85cc37821320fe27da9feeacc7961003f;p=chise%2Fxemacs-chise.git diff --git a/nt/installer/Wise/pre_wise.py b/nt/installer/Wise/pre_wise.py index 566e5c5..4bbd1a4 100755 --- a/nt/installer/Wise/pre_wise.py +++ b/nt/installer/Wise/pre_wise.py @@ -1,133 +1,133 @@ -import string -import re -import os -import types - -infile=open("xemacs.tmpl","r") - -import version -import dirs -import filelist -import packages - -def letter(package): - index = packages.all.index(package) - if index>29: - raise "WISE error: too many components" - return chr(ord("A")+index) - -def letters(package_list): - ret = "" - for p in package_list: - ret = ret+letter(p) - return ret - -def describe(package): - if package in packages.descriptions.keys(): - return ": "+packages.descriptions[package] - else: return "" - -def ifblock(var,val): - return("item: If/While Statement\n Variable=%s\n Value=%s\n Flags=00001010\nend\n" % (var,val)) - -def endblock(): - return("item: End Block\nend\n") - -def setvar(var,val): - return("item: Set Variable\n Variable=%s\n Value=%s\n Flags=10000000\nend\n" % (string.upper(var), val)) - -def default_letters_of_category(cat): - val = "" - for p in packages.default: - if packages.category_of_package(p) == cat: - val = val + packages.letter_of_package(p) - return val - -def set_category_defaults(): - ret = "" - for c in packages.category_names: - ret = ret + setvar(c, default_letters_of_category(c)) - return ret - -def do_category(cat): - ret = ifblock("COMPONENTS", packages.letter_of_category(cat)) - for pkg in packages.packages_of_category(cat): - ret = ret + ifblock(string.upper(cat),packages.letter_of_package(pkg)) - for f in files_of_package(pkg): - ret = ret+install_pkg_file(f) - ret = ret + endblock() - ret = ret + endblock() - return ret - -def files_of_package(package): - manifest_file = dirs.packages + "\\pkginfo\\MANIFEST." + package - manifest = open(manifest_file,"r") - lines = manifest.readlines() - lines = map(lambda s:s[:-1], lines) - lines = map(lambda s:string.replace(s,'/','\\'), lines) - return lines - -def category_dialog(cat): - npkg = len(packages.packages_of_category(cat)) - ret="" - ret=ret+" item: Dialog\n Title="+packages.category_descriptions[cat]+" Packages\n" - ret=ret+" Width=210\n" - ret=ret+" Height=%d\n" % (45+npkg*10) - ret=ret+" Font Name=Helv\n" - ret=ret+" Font Size=8\n" - ret=ret+" item: Push Button\n" - ret=ret+" Rectangle=107 %d 147 %d\n" % (5+npkg*10+2, 5+npkg*10+17) - ret=ret+" Create Flags=01010000000000010000000000000001\n" - ret=ret+" Text=OK\n" - ret=ret+" end\n" - ret=ret+" item: Push Button\n" - ret=ret+" Rectangle=153 %d 193 %d\n" % (5+npkg*10+2, 5+npkg*10+17) - ret=ret+" Variable=%s\n" % string.upper(cat) - ret=ret+" Value=%%%s_SAVE%%\n" % string.upper(cat) - ret=ret+" Create Flags=01010000000000010000000000000000\n" - ret=ret+" Flags=0000000000000001\n" - ret=ret+" Text=Cancel\n" - ret=ret+" end\n" - ret=ret+" item: Checkbox\n" - ret=ret+" Rectangle=0 5 191 %d\n" % (10*npkg) - ret=ret+" Variable=%s\n"%string.upper(cat) - ret=ret+" Create Flags=01010000000000010000000000000011\n" - ret=ret+" Flags=0000000000000010\n" - for pkg in packages.packages_of_category(cat): - ret = ret+" Text=%s: %s\n"%( pkg, packages.package_descriptions[pkg]) - ret=ret+" Text=\n" - ret=ret+" end\n" - ret=ret+" end\n" - return ret - -def src_path(src,name): - return src + "\\" + name - -def dst_path(dst,name): - return "%MAINDIR%"+"\\"+dst+"\\" + name - -def install_file(name,src,dst): - return("item: Install File\n Source=%s\n Destination=%s\n Flags=0000000010000010\nend\n" % (src_path(src,name),dst_path(dst,name))) - -def install_pkg_file(name): - return install_file(name,dirs.packages,dirs.pkg_dst) - -def do_package(package): - return ifblock("COMPONENTS",letter(package)) + \ - string.join(map(install_pkg_file,files(package)),"")+ \ - endblock() - -for line in infile.readlines(): - left=string.find(line,"<<<") - if left>=0: - right=string.find(line,">>>") - expr=line[left+3:right] - val=eval(expr) - if type(val)==types.StringType: - print line[:left] + val + line[right+3:], - elif type(val)==types.ListType: - for v in val: - print line[:left] + v + line[right+3:], - else: print line, - - +import string +import re +import os +import types + +infile=open("xemacs.tmpl","r") + +import version +import dirs +import filelist +import packages + +def letter(package): + index = packages.all.index(package) + if index>29: + raise "WISE error: too many components" + return chr(ord("A")+index) + +def letters(package_list): + ret = "" + for p in package_list: + ret = ret+letter(p) + return ret + +def describe(package): + if package in packages.descriptions.keys(): + return ": "+packages.descriptions[package] + else: return "" + +def ifblock(var,val): + return("item: If/While Statement\n Variable=%s\n Value=%s\n Flags=00001010\nend\n" % (var,val)) + +def endblock(): + return("item: End Block\nend\n") + +def setvar(var,val): + return("item: Set Variable\n Variable=%s\n Value=%s\n Flags=10000000\nend\n" % (string.upper(var), val)) + +def default_letters_of_category(cat): + val = "" + for p in packages.default: + if packages.category_of_package(p) == cat: + val = val + packages.letter_of_package(p) + return val + +def set_category_defaults(): + ret = "" + for c in packages.category_names: + ret = ret + setvar(c, default_letters_of_category(c)) + return ret + +def do_category(cat): + ret = ifblock("COMPONENTS", packages.letter_of_category(cat)) + for pkg in packages.packages_of_category(cat): + ret = ret + ifblock(string.upper(cat),packages.letter_of_package(pkg)) + for f in files_of_package(pkg): + ret = ret+install_pkg_file(f) + ret = ret + endblock() + ret = ret + endblock() + return ret + +def files_of_package(package): + manifest_file = dirs.packages + "\\pkginfo\\MANIFEST." + package + manifest = open(manifest_file,"r") + lines = manifest.readlines() + lines = map(lambda s:s[:-1], lines) + lines = map(lambda s:string.replace(s,'/','\\'), lines) + return lines + +def category_dialog(cat): + npkg = len(packages.packages_of_category(cat)) + ret="" + ret=ret+" item: Dialog\n Title="+packages.category_descriptions[cat]+" Packages\n" + ret=ret+" Width=210\n" + ret=ret+" Height=%d\n" % (45+npkg*10) + ret=ret+" Font Name=Helv\n" + ret=ret+" Font Size=8\n" + ret=ret+" item: Push Button\n" + ret=ret+" Rectangle=107 %d 147 %d\n" % (5+npkg*10+2, 5+npkg*10+17) + ret=ret+" Create Flags=01010000000000010000000000000001\n" + ret=ret+" Text=OK\n" + ret=ret+" end\n" + ret=ret+" item: Push Button\n" + ret=ret+" Rectangle=153 %d 193 %d\n" % (5+npkg*10+2, 5+npkg*10+17) + ret=ret+" Variable=%s\n" % string.upper(cat) + ret=ret+" Value=%%%s_SAVE%%\n" % string.upper(cat) + ret=ret+" Create Flags=01010000000000010000000000000000\n" + ret=ret+" Flags=0000000000000001\n" + ret=ret+" Text=Cancel\n" + ret=ret+" end\n" + ret=ret+" item: Checkbox\n" + ret=ret+" Rectangle=0 5 191 %d\n" % (10*npkg) + ret=ret+" Variable=%s\n"%string.upper(cat) + ret=ret+" Create Flags=01010000000000010000000000000011\n" + ret=ret+" Flags=0000000000000010\n" + for pkg in packages.packages_of_category(cat): + ret = ret+" Text=%s: %s\n"%( pkg, packages.package_descriptions[pkg]) + ret=ret+" Text=\n" + ret=ret+" end\n" + ret=ret+" end\n" + return ret + +def src_path(src,name): + return src + "\\" + name + +def dst_path(dst,name): + return "%MAINDIR%"+"\\"+dst+"\\" + name + +def install_file(name,src,dst): + return("item: Install File\n Source=%s\n Destination=%s\n Flags=0000000010000010\nend\n" % (src_path(src,name),dst_path(dst,name))) + +def install_pkg_file(name): + return install_file(name,dirs.packages,dirs.pkg_dst) + +def do_package(package): + return ifblock("COMPONENTS",letter(package)) + \ + string.join(map(install_pkg_file,files(package)),"")+ \ + endblock() + +for line in infile.readlines(): + left=string.find(line,"<<<") + if left>=0: + right=string.find(line,">>>") + expr=line[left+3:right] + val=eval(expr) + if type(val)==types.StringType: + print line[:left] + val + line[right+3:], + elif type(val)==types.ListType: + for v in val: + print line[:left] + v + line[right+3:], + else: print line, + +