home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / useful / comm / tcp / amitcp / install_amitcp < prev    next >
Text File  |  1994-05-19  |  55KB  |  1,561 lines

  1. ;;;; Hey Emacs, this script might as well be -*- lisp -*-
  2. ;;;;
  3. ;;;; Install_AmiTCP - AmiTCP/IP installation script for Installer
  4. ;;;;
  5. ;;;; Copyright © 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>
  6. ;;;;
  7. ;;;; $Id: Install_AmiTCP,v 3.6 1994/05/19 04:19:33 ppessi Exp $
  8. ;;;;
  9. ;;;; This script has been tested with Installer 1.24:
  10. ;;;;
  11. ;;;;     Installer and Installer project icon
  12. ;;;;     (c) Copyright 1991-93 Commodore-Amiga, Inc.  All Rights Reserved.
  13. ;;;;     Reproduced and distributed under license from Commodore.
  14. ;;;;
  15. ;;;;     INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE;
  16. ;;;;     NO WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK.  NO LIABILITY
  17. ;;;;     OR RESPONSIBILITY IS ASSUMED.
  18. ;;;;
  19. ;;;; Use following Icon tooltypes / Command line options:
  20. ;;;; APPNAME=AmiTCP/IP
  21. ;;;; MINUSER=AVERAGE
  22. ;;;;
  23. (welcome "    Welcome to " @app-name " 3.0 beta installation.\n"
  24.      "    We hope that after this installation your world of "
  25.      "communication will be much more broader than before.")
  26. ;;;;
  27. ;;;; What we are?
  28. ;;;;
  29. (set app-name (cat @app-name " 3.0ß2"))
  30.  
  31. ;;;;
  32. ;;;; "Needs"
  33. ;;;;
  34. (set need-version 37  ; version of operating system need by AmiTCP/IP
  35.      need-memory (* 512 1024))
  36. ;;;
  37. ;;; Destination directories of the AmiTCP/IP
  38. ;;;
  39. (set 
  40.  atcp-name "AmiTCP"
  41.  atcp-assign (cat atcp-name ":")    ; Assign to AmiTCP
  42.  ;; Exported files
  43.  export-dir (tackon atcp-assign "export")
  44.  ;; Configuration
  45.  conf-dir (tackon atcp-assign "db")
  46.  ;; User binaries
  47.  bin-dir (tackon atcp-assign "bin")
  48.  ;; documentation
  49.  doc-dir (tackon atcp-assign "doc")
  50.  ;; devices directory
  51.  devs-dir (tackon atcp-assign "devs")
  52.  ;; AmigaGuide documentation
  53.  help-dir (tackon atcp-assign "help")
  54.  ;; DOS handlers
  55.  l-dir (tackon atcp-assign "l")
  56.  ;; libraries
  57.  libs-dir (tackon atcp-assign "libs")
  58.  ;; source
  59.  src-dir (tackon atcp-assign "src")
  60.  ;; includes for net applications
  61.  include-dir (tackon atcp-assign "netinclude")
  62.  ;; network link libraries
  63.  lib-dir (tackon atcp-assign "netlib")
  64.  ;; daemons
  65.  serv-dir (tackon atcp-assign "serv")
  66.  ;;
  67.  ;; If you add directories above, then also add the name of the variable below.
  68.  ;; This is to have "for i in a b c d ..." construct
  69.  ;;
  70.  ;; These directories are always present
  71.  dir-pat (cat "(" "devs" "|" "db" "|" "bin" "|" "doc" "|" 
  72.           "help" "|" "l" "|" "libs" "|" "serv" ")")
  73.  ;; Optional directories
  74.  dir-pat-opt (cat "(" "netinclude" "|" "netlib" "|" "src" ")")
  75.  ;; The source directory name
  76.  source-dir (if (= 1 (exists @icon))
  77.             (pathonly (expandpath @icon))
  78.           (expandpath @icon))
  79.  ;; Mounts
  80.  tcp-mount (cat 
  81.         "Assign TCP: Exists > NIL:\n" 
  82.         "IF Warn\n"
  83.         "  Mount TCP: from AmiTCP:devs/Inet-Mountlist\n"
  84.         "EndIf\n")
  85.  )
  86.  ;; How to get needed information?
  87. (set
  88.  net-setup-help
  89.      "    You can get this information from your network administration.\n")
  90.  
  91. ;;; copy "more" to ram: to be able to use it
  92. (set
  93.  pager-cmd (if (exists "ENV:PAGER" (noreq)) (getenv "PAGER"))
  94.  pager-cmd 
  95.  (if pager-cmd pager-cmd 
  96.    (if (exists "SYS:Utilities/More" (noreq))
  97.        ((copyfiles
  98.      (prompt "Copying sys:utilities/more to ram: for use")
  99.      (source "SYS:Utilities/More")
  100.      (dest   "RAM:")
  101.      (safe)
  102.      (optional "nofail"))
  103.     "RAM:More")
  104.      ("more"))))
  105.  
  106. ;; Return old AmiTCP: assign if we are aborting
  107. (onerror
  108.  (if old-atcp-directory
  109.      (makeassign atcp-name old-atcp-directory)))
  110.  
  111. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  112. (procedure
  113.  ask-ip-address
  114.  ;;  Procedure to ask an IP address
  115.  ;;
  116.  ;; arguments:
  117.  ;;  ::ask-ip-prompt   - Prompt text
  118.  ;;  ::ask-ip-help     - help text
  119.  ;;  ::ask-ip-need     - empty result allowed if not true
  120.  ;;
  121.  ;; locally used names:
  122.  ;;  ::ask-ip-result
  123.  (set ::ask-ip-result "<none>")
  124.  (while
  125.      ((set ::ask-ip-result
  126.        (askstring
  127.         (prompt ::ask-ip-prompt
  128.             (if (NOT ::ask-ip-need)
  129.             (cat "\nGive an empty string if you want to "
  130.                  "by-pass this option."))
  131.             (if (NOT (= ::ask-ip-result "<none>"))
  132.             (cat "\n\nYou entered an invalid value\n\""
  133.                  ::ask-ip-result "\".\n"
  134.                  "Enter a valid IP address.")))
  135.         (default (if (<> ::ask-ip-result "<none>") ::ask-ip-result ""))
  136.         (help net-setup-help
  137.           ::ask-ip-help
  138.           "\n    Internet address is a string of at most four "
  139.           "decimal numbers separated by dots. For example, "
  140.           "\"130.233.161.40\" is a valid internet address.\n"
  141.           "    You will be asked again for the address, "
  142.           "if the address you entered is invalid.")))
  143.       ;; loop while answer is unacceptable
  144.       (if ::ask-ip-result
  145.       (NOT (patmatch "# #(1|2|3|4|5|6|7|8|9|0).#(1|2|3|4|5|6|7|8|9|0|.)# "
  146.              ::ask-ip-result))
  147.      ::ask-ip-need)))
  148.  ::ask-ip-result)
  149.  
  150. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  151. (procedure
  152.  check-system-version
  153.  ;; is your Exec recent enough?
  154.  (set exec-version (/ (getversion) 65536))
  155.  (transcript "Running on exec version " exec-version ".")
  156.  (if (< exec-version need-version)    ; check operating system version
  157.      ((message @app-name " needs at least Exec version " need-version
  158.            " to run.\nYou have only version " exec-version ".\n"
  159.            "You can proceed with the installation, but consider "
  160.            "installing the " @app-name " with proper version of "
  161.            "the operating system."
  162.            (help
  163.         "    The " @app-name " uses some system functions "
  164.         "that are not present or functional in earlier system "
  165.         "versions. Consider updating your system.\n"
  166.         "    If you have a later version of operating system "
  167.         "and are only now using older version: be sure to use "
  168.         "only release 2.04 or newer with " @app-name ". "
  169.         "No damage happens if you run " @app-name " with an "
  170.         "earlier operating system, however. It just "
  171.         "refuses to start.\n"
  172.         "    If you decide to continue, no changes will be made to "
  173.         "system startup files, so you must edit them yourself. "
  174.         "Refer instructions for manual installation."))
  175.       (transcript "User decided to continue installation while running "
  176.           "on operating system release earlier than 2.04."))))
  177.  
  178.  
  179. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  180. (procedure
  181.  check-available-memory
  182.  ;;
  183.  (transcript "Checking available memory.")
  184.  (set avail-mem (+ (database "total-mem")))
  185.  (if (< avail-mem need-memory)
  186.      ((message "Your system has only " (/ avail-mem 1024) " kilobytes of "
  187.            "free memory, while " @app-name " needs at least "
  188.            (/ need-memory 1024) " to be useful.\n"
  189.            "You can continue the installation but be warned!")
  190.       (transcript "User decided to continue installation while available "
  191.           "memory was below the recommended minimum."))))
  192.  
  193. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  194. (procedure
  195.  check-user-level
  196.  ;;
  197.  (transcript "Checking user level.")
  198.  (if (< @user-level 1)
  199.      ((transcript "Installation aborted due to too low user level.")
  200.       (abort "AmiTCP/IP installation requires at least the \"average\" "
  201.          "user level. Restart installation and select appropriate user "
  202.          "level."))))
  203.  
  204. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  205. (procedure
  206.  check-old-assign
  207.  ;; If there is already the AmiTCP/IP installed, store the assign
  208.  ;; to old-atcp-directory
  209.  (transcript "Checking for already installed AmiTCP.")
  210.  (if (exists atcp-assign (noreq))
  211.      (set old-atcp-directory (getassign atcp-name)))
  212.  (if old-atcp-directory
  213.      (transcript "Existing AmiTCP detected at directory " 
  214.          old-atcp-directory ".")))
  215.  
  216. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  217. (procedure
  218.  select-destination-directory
  219.  ;; Select destination directory for the installation. We suggest the user
  220.  ;; to install to the place from where the installer was started. This is
  221.  ;; since normally this software will be unarchived to its proper location
  222.  ;; and the files don't have to be copied any more.
  223.  ;;
  224.  (transcript "Selecting destination directory for the installation.")
  225.  (while
  226.      ((set @default-dest
  227.        (askdir
  228.         (prompt "Select directory where to install " @app-name ".\n"
  229.             "Most of the files don't have to be copied, if you accept "
  230.             "the offered default.")
  231.         (help "    Here you can spe