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