home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Resources / Online / CheckHTML / Install < prev    next >
Text File  |  2000-02-15  |  14KB  |  554 lines

  1. ;
  2. ; Installer script for CheckHTML
  3. ;
  4. ; Copyright © 1997-2000 Dipl.-Inform. Kai Hofmann
  5. ; All rights reserved!
  6. ; Released without any explicit or implicit warranty!
  7. ;
  8. ; EMail: hofmann@hofmann-int.de
  9. ; WWW  : http://www.hofmann-int.de/
  10. ;
  11. ; $VER: Install 43.10 (15.01.2000)
  12. ;
  13. ; -----------------------------------------------------------------------------
  14. ; WrapGuide is copyright © 1994-1995 Udo Schuermann
  15. ; -----------------------------------------------------------------------------
  16. ;
  17. ; TODO
  18. ;
  19. ; Uninstaller
  20. ;
  21. ; -----------------------------------------------------------------------------
  22.  
  23.  (set @default-dest "sgml:")
  24.  
  25.  (if (= @installer-ng-version 0)
  26.    (if (= @installer-version 0)
  27.      (
  28.       ; old Installer
  29.       (set #prop "")
  30.      )
  31.      (
  32.       ; new Installer
  33.       (set #prop "\x1b[2p")
  34.      )
  35.    )
  36.    (
  37.     ; InstallerNG
  38.     (set #prop "\x1b[2p")
  39.    )
  40.  )
  41.  
  42.  (set #wrapguide
  43.    (if (exists "C:WrapGuide")
  44.      1
  45.      (if (exists "C/WrapGuide")
  46.        2
  47.        0
  48.      )
  49.    )
  50.  )
  51.  
  52. ; --- Installer script strings ------------------------------------------------
  53.  
  54.  (set #i 0)
  55.  (while (<> @language (select #i "deutsch" @language)) ; LANGUAGE
  56.    (set #i (+ #i 1))
  57.  )
  58.  (if (= #i 1) ; LANGUAGE
  59.    (set #language "english")
  60.    (set #language @language)
  61.  )
  62.  
  63.  (set #i 0)
  64.  (set #language_default %10) ; LANGUAGE
  65.  (while (<> #language (select #i "deutsch" #language)) ; LANGUAGE
  66.    (
  67.     (set #language_default (shiftright #language_default 1))
  68.     (set #i (+ #i 1))
  69.    )
  70.  )
  71.  
  72.  (select #i ; LANGUAGE
  73.    ( ; deutsch
  74.     (if (= @installer-version 0)
  75.       (
  76.        (set #help_askoptions "Mit einem Installer der älter als Version 42.6 ist, kann es passieren, daß Checkbox-Knöpfe ohne Labels zu sehen sind. Das Setzen dieser Knöpfe wird ignoriert.\n\n")
  77.       )
  78.     )
  79.  
  80.     (set #choice_english      "Englisch")
  81.     (set #choice_german       "Deutsch") ; LANGUAGE
  82.     (set #prompt_copy "Wollen Sie die folgende(n) Datei(en) kopieren?")
  83.     (set #welcome_install   (cat "Willkommen zum " @app-name " Installations-Werkzeug.\n"
  84.                  "Bitte geben Sie an, wie die Installation geschehen soll (basierend auf Ihrem Wissen über den Amiga Computer)."
  85.                 )
  86.     )
  87.     (set #prompt_install_docs    "Welche Art von Dokumenten wollen Sie installieren?")
  88.     (set #prompt_makedir "Das folgende Verzeichnis wurde nicht gefunden, deshalb muß es erzeugt werden:")
  89.     (set #prompt_install_asciidocs "Für welche Sprachen wollen Sie die ASCII Dokumentation installieren?")
  90.     (set #prompt_install_agdocs    "Für welche Sprachen wollen Sie die AmigaGuide® Dokumentation installieren?")
  91.     (set #prompt_wheredocs "Wo wollen Sie die Dokumentation installieren?")
  92.     (set #prompt_wheresgml "Wo wollen Sie das SGML Verzeichnis erzeugen?")
  93.     (set #prompt_startup   "Füge das SGML Assign zur Startup-Sequence hinzu.")
  94.  
  95.     (set #prompt_exists    "Eine Datei mit dem Namen 'sgml:CATALOG' existiert bereits.\nWollen Sie diese überschreiben?")
  96.     (set #help_exists       "Wenn Sie sich dazu entscheiden die CATALOG Datei zu überschreiben, könnten Sie einige öffentliche Identifier verlieren!\nAnsonsten vergleichen Sie bitte, ob einige neue öffentliche Identifier im CATALOG dieses Archives vorhanden sind.")
  97.     (set #button_append    "Anhängen")
  98.     (set #button_overwrite "Überschreiben")
  99.     (set #msg_compare       "Bitte vergessen Sie nicht die CATALOG Dateien auf neuen öffentlichen Identifiern zu vergleichen!")
  100.    )
  101.    ( ; english
  102.     (if (= @installer-version 0)
  103.       (
  104.        (set #help_askoptions "With an Installer prior to version 42.6 it can happen that you see checkbox-buttons without labels. Selecting these buttons will be ignored.\n\n")
  105.       )
  106.     )
  107.  
  108.     (set #choice_english   "English")
  109.     (set #choice_german    "German") ; LANGUAGE
  110.     (set #prompt_copy       "Do you want to copy the following file(s)?")
  111.     (set #welcome_install  (cat "Welcome to the " @app-name " installation utility.\n"
  112.                 "Please indicate how the installation should proceed (based upon your knowledge of the Amiga computer)."
  113.                )
  114.     )
  115.     (set #prompt_install_docs "Which type of documents do you want to install?")
  116.     (set #prompt_makedir "The following directory was not found, so it must be created:")
  117.  
  118.     (set #prompt_install_asciidocs "For which languages do you want to install the ASCII documentation?")
  119.     (set #prompt_install_agdocs    "For which languages do you want to install the AmigaGuide® documentation?")
  120.  
  121.     (set #prompt_wheredocs "Where to install the documentation?")
  122.     (set #prompt_wheresgml "Where to create the SGML directory?")
  123.     (set #prompt_startup   "Adding SGML assign to startup-sequence.")
  124.     (set #prompt_exists    "A file 'sgml:CATALOG' already exists.\nDo you want to overwrite it?")
  125.     (set #help_exists       "If you decide to overwrite the CATALOG file, you might loose some public identifiers!\nOtherwise please verify if there are some new public identifiers within the CATALOG from this archive.")
  126.     (set #button_append    "Append")
  127.     (set #button_overwrite "Overwrite")
  128.     (set #msg_compare       "Please don't forget to compare the CATALOG files for new public identifiers!")
  129.    )
  130.  )
  131.  (if (> @installer-version 0)
  132.    (
  133.     (set #help_askoptions "")
  134.    )
  135.  )
  136.  
  137. ; --- GetVersion procedure ----------------------------------------------------
  138.  
  139.  (procedure P_GetVersion
  140.   ; Param:
  141.   ; #file
  142.   ;
  143.   ; Results:
  144.   ; #ver #rev
  145.   ;
  146.   ; Vars used:
  147.   ; #vernum
  148.  
  149.   (set #vernum (getversion (cat #file)))
  150.   (set #ver (/ #vernum 65536))
  151.   (set #rev (- #vernum (* #ver 65536)))
  152.  )
  153.  
  154. ; --- GetOSVersion ------------------------------------------------------------
  155.  
  156.  (procedure P_GetOSVersion
  157.   ; Param:
  158.   ;
  159.   ; Results:
  160.   ; #os_ver #os_rev
  161.   ;
  162.   ; Used Vars:
  163.   ; #file #ver #rev #vernum
  164.  
  165.   (set #file "libs:version.library")
  166.   (P_GetVersion)
  167.   (set #os_ver #ver)
  168.   (set #os_rev #rev)
  169.  )
  170.  
  171. ; --- BitToLanguage -----------------------------------------------------------
  172.  
  173.  (procedure P_BitToLanguage
  174.   ; Params:
  175.   ; #langmask
  176.   ;
  177.   ; Results:
  178.   ; #langmask #lang
  179.   ;
  180.   ; Used Vars:
  181.   ; #i #bitmask
  182.  
  183.   (set #i 0)
  184.   (set #bitmask %110) ; LANGUAGE
  185.   (while (AND (< #i 25) (NOT (IN #langmask #i))) ; LANGUAGE
  186.     (
  187.      (set #bitmask (BITOR (shiftleft #bitmask 1) %001)) ; LANGUAGE
  188.      (set #i (+ #i 1))
  189.     )
  190.   )
  191.   (set #langmask (BITAND #langmask #bitmask))
  192.   (set #lang (select #i "english" "deutsch" "")) ; LANGUAGE
  193.  )
  194.  
  195. ; --- AskDocFormat ------------------------------------------------------------
  196.  
  197.  (procedure P_AskDocFormats
  198.   ; Params:
  199.   ; #prompt #docmask #defaultmask
  200.   ;
  201.   ; Results:
  202.   ; #docmask
  203.   ;
  204.   ; Used Vars:
  205.   ; #bitmask
  206.  
  207.   (set #docmask (BITAND #docmask %11))
  208.   (if #docmask
  209.     (
  210.      (set #bitmask (askoptions (prompt #prompt)
  211.                    (help #help_askoptions @askoptions-help)
  212.                    (default (BITAND #defaultmask #docmask))
  213.                    (choices
  214.                  (if (IN #docmask 0)
  215.                    (cat #prop "ASCII")
  216.                    ("")
  217.                  )
  218.                  (if (IN #docmask 1)
  219.                    (cat #prop "AmigaGuide®")
  220.                    ("")
  221.                  )
  222.                    )
  223.            )
  224.      )
  225.      (set #docmask (BITAND #docmask #bitmask))
  226.     )
  227.   )
  228.  )
  229.  
  230. ; --- AskLanguages ------------------------------------------------------------
  231.  
  232.  (procedure P_AskLanguages
  233.   ; Params:
  234.   ; #prompt #langmask #defaultmask
  235.   ;
  236.   ; Results:
  237.   ; #langmask
  238.   ;
  239.   ; Used Vars:
  240.   ; #bitmask
  241.  
  242.   (set #langmask (BITAND #langmask %11)) ; LANGUAGE
  243.   (if #langmask
  244.     (
  245.      (set #bitmask (askoptions (prompt #prompt)
  246.                    (help #help_askoptions @askoptions-help)
  247.                    (default (BITAND #defaultmask #langmask))
  248.                    (choices
  249.                  (if (IN #langmask 0)
  250.                    (cat #prop #choice_english)
  251.                    ("")
  252.                  )
  253.                  (if (IN #langmask 1)
  254.                    (cat #prop #choice_german)
  255.                    ("")
  256.                  )
  257.                  ; LANGUAGE
  258.                    )
  259.            )
  260.      )
  261.      (set #langmask (BITAND #langmask #bitmask))
  262.     )
  263.   )
  264.  )
  265.  
  266. ; --- MkDirInfo ---------------------------------------------------------------
  267.  
  268.  (procedure P_MkDirInfo
  269.   ; Params:
  270.   ; #dir #infos #dest-dir
  271.   ;
  272.   ; Results:
  273.   ;
  274.   ; Used Vars:
  275.  
  276.   (if (NOT (exists (tackon #dest-dir #dir) (noreq)))
  277.     (if #infos
  278.       (makedir (tackon #dest-dir #dir) (prompt #prompt_makedir "\n\n" (tackon #dest-dir #dir)) (help @makedir-help) (infos) (confirm "expert"))
  279.       (makedir (tackon #dest-dir #dir) (prompt #prompt_makedir "\n\n" (tackon #dest-dir #dir)) (help @makedir-help) (confirm "expert"))
  280.     )
  281.   )
  282.  )
  283.  
  284. ; --- CpFile ------------------------------------------------------------------
  285.  
  286.  (procedure P_CpFile
  287.   ; Params:
  288.   ; #dir #file #infos #dest-dir #src-dir #pattern
  289.   ;
  290.   ; Results:
  291.   ;
  292.   ; Used Vars:
  293.  
  294.   (if #pattern
  295.     (if #infos
  296.       (copyfiles (prompt #prompt_copy)
  297.          (help @copyfiles-help)
  298.          (source (tackon #src-dir #dir))
  299.          (dest (tackon #dest-dir #dir))
  300.          (pattern #file)
  301.          (files)
  302.          (infos)
  303.          (optional "nofail" "force")
  304.          (confirm "expert")
  305.       )
  306.       (copyfiles (prompt #prompt_copy)
  307.          (help @copyfiles-help)
  308.          (source (tackon #src-dir #dir))
  309.          (dest (tackon #dest-dir #dir))
  310.          (pattern #file)
  311.          (files)
  312.          (optional "nofail" "force")
  313.          (confirm "expert")
  314.       )
  315.     )
  316.     (if #infos
  317.       (copyfiles (prompt #prompt_copy)
  318.          (help @copyfiles-help)
  319.          (source (tackon (tackon #src-dir #dir) #file))
  320.          (dest (tackon #dest-dir #dir))
  321.          (files)
  322.          (infos)
  323.          (optional "nofail" "force")
  324.          (confirm "expert")
  325.       )
  326.       (copyfiles (prompt #prompt_copy)
  327.          (help @copyfiles-help)
  328.          (source (tackon (tackon #src-dir #dir) #file))
  329.          (dest (tackon #dest-dir #dir))
  330.          (files)
  331.          (optional "nofail" "force")
  332.          (confirm "expert")
  333.       )
  334.     )
  335.   )
  336.  )
  337.  
  338. ; -----------------------------------------------------------------------------
  339.  
  340.  ( ; Install
  341.   (welcome #welcome_install)
  342.   (complete 0)
  343.   (P_GetOSVersion)
  344.   (if (not (exists "c:sgmls" (noreq)))
  345.     (copyfiles (prompt #prompt_copy)
  346.            (help @copyfiles-help)
  347.            (source "C/sgmls68000")
  348.            (dest "C:")
  349.            (newname "sgmls")
  350.              (confirm)
  351.     )
  352.   )
  353.   (copyfiles (prompt #prompt_copy)
  354.          (help @copyfiles-help)
  355.          (source "C")
  356.          (dest "C:")
  357.          (choices
  358.         "CountStrings"
  359.         "SelectString"
  360.          )
  361.          (confirm)
  362.   )
  363.   (complete 14)
  364.   (copyfiles (prompt #prompt_copy)
  365.          (help @copyfiles-help)
  366.          (source "S/CheckHTML")
  367.          (dest "S:")
  368.          (infos)
  369.          (confirm)
  370.   )
  371.   (protect "S:CheckHTML" "+s")
  372.   (copyfiles (prompt #prompt_copy)
  373.          (help @copyfiles-help)
  374.          (source "rexx/CheckHTML.rexx")
  375.          (dest "rexx:")
  376.          (confirm)
  377.   )
  378.   (complete 29)
  379.   (if (NOT (exists "sgml:" (noreq)))
  380.     (
  381.      (set #dir (askdir (prompt #prompt_wheresgml)
  382.                (help @askdir-help)
  383.                (default "System:SGML")
  384.                (newpath)
  385.            )
  386.      )
  387.      (makeassign "sgml" #dir)
  388.      (startup "SGMLS"
  389.           (prompt #prompt_startup)
  390.           (help @startup-help)
  391.           (command (cat "assign sgml: " #dir))
  392.           ;(confirm)
  393.      )
  394.     )
  395.   )
  396.   (complete 43)
  397.  
  398.   (if (exists "sgml:CATALOG")
  399.     (
  400.      (if (NOT (AND (= (run "search sgml:CATALOG ISOlat1.ent") 0) (= (run "search sgml:CATALOG HTML40.dtd") 0)))
  401.        (
  402.     (run "type SGML/CATALOG >>sgml:CATALOG")
  403.     (set #compare 0)
  404.     (if (exists "sgml:ISOlat1.sgml")
  405.       (
  406.        (delete "sgml:ISOlat1.sgml" (optional "force"))
  407.        (set #compare 1)
  408.       )
  409.     )
  410.        )
  411.        (
  412.     (if (askbool (prompt #prompt_exists)
  413.              (help #help_exists)
  414.              (default 1)
  415.         )
  416.       (
  417.        (copyfiles (prompt #prompt_copy)
  418.               (help @copyfiles-help)
  419.               (source "SGML/CATALOG")
  420.               (dest "sgml:")
  421.               (files)
  422.        )
  423.        (set #compare 0)
  424.       )
  425.       (
  426.        (set #compare 1)
  427.       )
  428.     )
  429.        )
  430.      )
  431.     )
  432.     (
  433.      (copyfiles (prompt #prompt_copy)
  434.         (help @copyfiles-help)
  435.         (source "SGML/CATALOG")
  436.         (dest "sgml:")
  437.         (files)
  438.         (confirm)
  439.      )
  440.      (set #compare 0)
  441.     )
  442.   )
  443.   (complete 57)
  444.   (copyfiles (prompt #prompt_copy)
  445.          (help @copyfiles-help)
  446.          (source "SGML")
  447.          (dest "sgml:")
  448.          (choices
  449.            "HTML.decl"
  450.            "ISOlat1.ent"
  451.            "HTMLSym.ent"
  452.            "HTMLMisc.ent"
  453.            "HTML20.dtd"
  454.            "HTML20-1.dtd"
  455.            "HTML20-s.dtd"
  456.            "HTML20-1s.dtd"
  457.            "HTML32.dtd"
  458.            "HTML40.dtd"
  459.            "HTML40frameset.dtd"
  460.            "HTML40trans.dtd"
  461.            "HTML401.dtd"
  462.            "HTML401frameset.dtd"
  463.            "HTML401trans.dtd"
  464.          )
  465.          (files)
  466.          (confirm)
  467.   )
  468.   (complete 71)
  469.   (set #prompt #prompt_install_docs)
  470.   (set #docmask %11)
  471.   (set #defaultmask %10)
  472.   (P_AskDocFormats)
  473.  
  474.   ; asciidocs (P_AskLanguages)
  475.   (if (IN #docmask 0)
  476.     (
  477.      (set #prompt #prompt_install_asciidocs)
  478.      (set #langmask %11)
  479.      (set #defaultmask (if (= (BITAND #language_default #langmask) 0) %01 #language_default)) ; LANGUAGE
  480.      (P_AskLanguages)
  481.      (set #install_asciidocs #langmask)
  482.     )
  483.     (set #install_asciidocs 0)
  484.   )
  485.  
  486.   ; agdocs (P_AskLanguages)
  487.   (if (IN #docmask 1)
  488.     (
  489.      (set #prompt #prompt_install_agdocs)
  490.      (set #langmask %11)
  491.      (set #defaultmask (if (= (BITAND #language_default #langmask) 0) %01 #language_default)) ; LANGUAGE
  492.      (P_AskLanguages)
  493.      (set #install_agdocs #langmask)
  494.     )
  495.     (set #install_agdocs 0)
  496.   )
  497.  
  498.   (set #src-dir "Docs")
  499.   (set #dest-dir (askdir (prompt #prompt_wheredocs)
  500.                  (help @askdir-help)
  501.                  (default "Help:")
  502.              )
  503.   )
  504.  
  505.   ; asciidocs
  506.   (if #install_asciidocs
  507.     (
  508.      (set #infos 1)
  509.      (set #pattern 0)
  510.      (set #langmask #install_asciidocs)
  511.      (while #langmask
  512.        (
  513.     (P_BitToLanguage)
  514.     (set #dir #lang)
  515.     (P_MkDirInfo)
  516.     (set #file (cat @app-name ".doc"))
  517.     (P_CpFile)
  518.        )
  519.      )
  520.     )
  521.   )
  522.   (complete 86)
  523.  
  524.   ; agdocs
  525.   (if #install_agdocs
  526.     (
  527.      (set #infos 1)
  528.      (set #pattern 0)
  529.      (set #langmask #install_agdocs)
  530.      (while #langmask
  531.        (
  532.     (P_BitToLanguage)
  533.     (set #dir #lang)
  534.     (P_MkDirInfo)
  535.     (set #file (cat @app-name ".guide"))
  536.     (P_CpFile)
  537.     (if (AND #wrapguide (< #os_ver 39))
  538.       (if (= #wrapguide 1)
  539.         (run ("stack 50000\nC:WrapGuide %s 65" (tackon (tackon #dest-dir #dir) #file)))
  540.         (run ("stack 50000\nC/WrapGuide %s 65" (tackon (tackon #dest-dir #dir) #file)))
  541.       )
  542.     )
  543.        )
  544.      )
  545.     )
  546.   )
  547.   (complete 100)
  548.   (if #compare
  549.     (
  550.      (message #msg_compare)
  551.     )
  552.   )
  553.  )
  554.