home *** CD-ROM | disk | FTP | other *** search
/ Dream 50 / Amiga_Dream_50.iso / AxeneOffice / Linux-1.2 / Packages / install.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1998-02-09  |  43KB  |  1,612 lines

  1. #!/bin/sh
  2. # install.sh 
  3. # Install AXENE software 1.4.2
  4. # Copyright (c)1995-97 AXENE. All Rights reserved.
  5. # EMail: <axene@axene.com>
  6. # Web  : http://www.axene.com/
  7. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  8. # Last update Sun Jan 18 18:31:20 1998 Xibios 2
  9. #
  10.  
  11. ECHONL1="echo "
  12. ECHONL2=
  13.  
  14. test_echo=`echo -n test`
  15. if [ $test_echo = "-n test" ]; then
  16.  test_echo=`echo "test\c"`
  17.  if [ $test_echo = "test\c" ]; then
  18.   test_echo=`echo -e "test\c"`
  19.   if [ $test_echo = "test" ]; then
  20.    ECHONL1="echo -e "
  21.    ECHONL2="\c"
  22.   fi
  23.  else
  24.   ECHONL1="echo "
  25.   ECHONL2="\c"
  26.  fi
  27. else
  28.   ECHONL1="echo -n "
  29. fi
  30.  
  31. #--- Init global variables
  32. SkipLine() { echo " "; }
  33. Fatal() { echo "${progname}: error: ${1}" 1>&2 ; exit 1; }
  34. #Debug() { echo "${progname}: debug: ${1}" 1>&2 ; }
  35. Debug() { :; }
  36.  
  37. progname=`basename $0`
  38. cmd_gunzip=
  39. cmd_tar=
  40. src_dir=`pwd`
  41. archive_list=
  42.  
  43. is_common="no"
  44. is_exec="no"
  45. is_xcl="no"
  46. is_xquad="no"
  47. is_xallwrite="no"
  48. is_xmayday="no"
  49. is_axeneoffice="no"
  50.  
  51. # ----------------------------------------------------------------- # 
  52. # CheckDir - Check existence and authorizations on directory        #
  53. #            <path>                                                 # 
  54. # ----------------------------------------------------------------- #
  55. CheckDir()
  56. {
  57.   if [ ! -d $1 ]; then
  58.     echo "  creating dir $1"
  59.     mkdir $1 || exit 1
  60.     chmod 755 $1 || exit 1
  61.   else
  62.     Debug "  $1 already exists"
  63.     if [ ! -w $1 -o ! -x $1 -o ! -r $1 ]; then
  64.       Fatal "$1 not readable, not writable or not executable."
  65.     fi
  66.   fi
  67. }
  68.  
  69. # ---------------------------------------------------------------------- # 
  70. # AskOneFromList - Let the user choose an item among a list              # 
  71. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  72. # ---------------------------------------------------------------------- #
  73. AskOneFromList()
  74. {
  75.  _ask_text=$1
  76.  _ask_default=$2
  77.  _ask_var=$3
  78.  shift 3
  79.  _arg_all=$@
  80.  _arg_num=$#
  81.  
  82.  if [ "$force_flag" = "yes" ]; then
  83.   return $_ask_default
  84.  else
  85.   echo $_ask_text
  86.   _ask_count=0
  87.   while [ $_ask_count -lt $_arg_num ]; do
  88.    if [ $_ask_count -eq $_ask_default ]; then
  89.     _ask_reply="(DEFAULT)"
  90.    else
  91.     _ask_reply=
  92.    fi
  93.    _ask_count=`expr $_ask_count + 1`
  94.    eval "echo \"  \$_ask_count. \$1 $_ask_reply\""
  95.    shift 1
  96.   done
  97.  fi
  98.  
  99.  while :; do
  100.   $ECHONL1"Your choice: "$ECHONL2
  101.   read _ask_reply
  102.    
  103.   if [ -z "$_ask_reply" ]; then
  104.    _arg_cnt=0
  105.    for _ask_phrase in $_arg_all; do
  106.     if [ $_arg_cnt -eq $_ask_default ]; then
  107.      eval "$_ask_var=\"\$_ask_phrase\""
  108.      break
  109.     fi
  110.     _arg_cnt=`expr $_arg_cnt + 1`
  111.    done        
  112.    return $_ask_default
  113.   fi
  114.   if [ ! `expr "$_ask_reply" : "^[0-9][0-9]*$"` = "0" ]; then
  115.    if [ $_ask_reply -gt 0 -a $_ask_reply -le $_arg_num ]; then
  116.     SkipLine
  117.     _arg_cnt=1
  118.     for _ask_phrase in $_arg_all; do
  119.      if [ $_arg_cnt -eq $_ask_reply ]; then
  120.       eval "$_ask_var=\"\$_ask_phrase\""
  121.       break
  122.      fi
  123.      _arg_cnt=`expr $_arg_cnt + 1`
  124.     done
  125.     return `expr $_ask_reply - 1`
  126.    fi
  127.   fi
  128.   echo "ERROR: You must enter a number between 1 and $_arg_num"
  129.  done
  130. }    
  131.  
  132. # ------------------------------------------------------------------ # 
  133. # AskManyFromList - Let the user choose items among a list           # 
  134. #                   <text> <variable> <choice-1> ... <choice-n>      #
  135. # ------------------------------------------------------------------ #
  136. AskManyFromList()
  137. {
  138.   _ask_text=$1
  139.   _ask_var=$2
  140.  
  141.   shift 2
  142.   _arg_all=$@
  143.   _arg_num=$#
  144.  
  145.   echo "$_ask_text (ex: 1 2)"
  146.   _ask_count=0
  147.   while [ $_ask_count -lt $_arg_num ]; do
  148.     _ask_count=`expr $_ask_count + 1`
  149.     eval "echo \"  \$_ask_count. \$1\""
  150.     shift 1
  151.   done
  152.  
  153.   $ECHONL1"Your choice: "$ECHONL2
  154.   read _ask_reply
  155.  
  156.   eval $_ask_var=
  157.   for _ask_nb in $_ask_reply; do
  158.    if [ ! `expr "$_ask_nb" : "^[0-9][0-9]*$"` = "0" ]; then
  159.     if [ $_ask_nb -ge 1 -a $_ask_nb -le $_arg_num ]; then
  160.      _arg_cnt=1
  161.      for _ask_phrase in $_arg_all; do
  162.        if [ $_arg_cnt -eq $_ask_nb ]; then
  163.          eval "$_ask_var=\"\$$_ask_var \$_ask_phrase\""
  164.          break
  165.        fi
  166.        _arg_cnt=`expr $_arg_cnt + 1`
  167.      done
  168.     else
  169.       eval $_ask_var= 
  170.       echo "ERROR: Each number must be between 1 and $_arg_num"
  171.       return 1
  172.     fi
  173.    else
  174.     eval $_ask_var= 
  175.     echo "ERROR: Each choice must be a number between 1 and $_arg_num"
  176.     return 1
  177.    fi
  178.   done
  179.   SkipLine
  180.   return 0
  181. }
  182.  
  183. # ------------------------------------------------------------------ # 
  184. # AskYesNo - Let the user choose for y or n                          # 
  185. #                   <text> <var>                                     #
  186. # ------------------------------------------------------------------ #
  187. AskYesNo()
  188. {
  189.   _message=$1
  190.   _answer=$2
  191.  
  192.   $ECHONL1$_message" "$ECHONL2
  193.  
  194.   read _ask_proceed
  195.  
  196.   _answer=-1
  197.   if [ "$_ask_proceed" = "n" -o "$_ask_proceed" = "no" ]; then
  198.     _answer=0
  199.   fi
  200.  
  201.   if [ "$_ask_proceed" = "y"  -o "$_ask_proceed" = "yes" ]; then
  202.     _answer=1
  203.   fi
  204.   return 0
  205. }
  206. # ----------------------------------------------------------------- # 
  207. # Main part                                                         # 
  208. # ----------------------------------------------------------------- #
  209.  
  210. cat << __EOT__
  211. ==============================================================================
  212.                 Welcome to the AXENE Installation Script
  213. ==============================================================================
  214.  
  215.   BY INSTALLING THIS SOFTWARE, YOU ARE CONSENTING TO BE BOUND BY THE LICENSE
  216.   AGREEMENT (check out the LICENSE file).  IF YOU DO NOT AGREE TO ALL OF THE 
  217.        TERMS OF THE LICENSE AGREEMENT, CANCEL THE INSTALLATION PROCESS.
  218.  
  219. ==============================================================================
  220.  
  221. __EOT__
  222.  
  223. _answer=-1
  224. while [ "$_answer" = "-1" ]; do
  225.  AskYesNo "Proceed installation ? [y/n]:" _answer
  226.  if [ $_answer = 0 ]; then
  227.    echo "Installation aborted."
  228.    exit 0
  229.  fi
  230. done
  231. SkipLine
  232.  
  233. #Does not work with linux
  234. #test -r *.tar.gz || Fatal "No package found in current dir"
  235.  
  236. _file=*.tar.gz
  237. if [ "`echo $_file`" = "*.tar.gz" ]; then
  238.  Fatal "No package found in current dir"
  239. fi
  240.  
  241. AskManyFromList "Please select packages to be installed" archive_list *.tar.gz
  242. test -z "$archive_list" && Fatal "No package selected"
  243.  
  244. #--- Get basedir ---
  245. if [ -w /usr/local/Axene ]; then
  246.  prefix=/usr/local/Axene
  247. else
  248.  if [ -w /usr/Axene ]; then
  249.   prefix=/usr/Axene
  250.  else
  251.   prefix=`dirname ${AXENE_LIB:-/usr/local/Axene/install}`
  252.   if [ ! -w `dirname $prefix` ]; then
  253.    prefix="~/Axene"
  254.   fi
  255.  fi
  256. fi
  257.  
  258. echo "Where do you want to install the software ?"
  259. echo "(DEFAULT: $prefix)"
  260. $ECHONL1"Your location: "$ECHONL2
  261. read _ask
  262. test -z "$_ask" || prefix=$_ask
  263. prefix=`eval "echo $prefix"`
  264. CheckDir $prefix
  265.  
  266. for _package in $archive_list; do
  267.   _tmp_str=`echo $_package | grep "^common"`
  268.   if [ -n "$_tmp_str" ]; then is_common="yes"; fi
  269.   _tmp_str=`echo $_package | grep "^Xclamation"`
  270.   if [ -n "$_tmp_str" ]; then is_xcl="yes"; is_exec="yes" ; fi
  271.   _tmp_str=`echo $_package | grep "^XQuad"`
  272.   if [ -n "$_tmp_str" ]; then is_xquad="yes"; is_exec="yes" ; fi
  273.   _tmp_str=`echo $_package | grep "^XAllWrite"`
  274.   if [ -n "$_tmp_str" ]; then is_xallwrite="yes"; is_exec="yes" ; fi
  275.   _tmp_str=`echo $_package | grep "^XMayday"`
  276.   if [ -n "$_tmp_str" ]; then is_xmayday="yes"; is_exec="yes" ; fi
  277.   _tmp_str=`echo $_package | grep "^AxeneOffice"`
  278.   if [ -n "$_tmp_str" ]; then is_axeneoffice="yes"; is_exec="yes" ; fi
  279. done
  280.  
  281. if [ $is_common = "yes" -o $is_xmayday = "yes" ]; then
  282.  if [ -f $prefix/lib/X11/nls/nls.dir -a ! -w $prefix/lib/X11/nls/nls.dir ]; \
  283.  then
  284.   rm -fr $prefix/lib/X11
  285.  fi
  286. fi
  287.  
  288. if [ $is_xcl = "yes" -a -w $prefix/lib/xclamationrc ]; then
  289.  _answer=-1
  290.  echo "A version a Xclamation is already installed."
  291.  while [ "$_answer" = "-1" ]; do
  292.   AskYesNo "\ Continue the installation of Xclamation's packages ? [y/n]:" \
  293.            _answer
  294.   if [ "$_answer" = "0" ]; then
  295.    _new_archive=""
  296.    for archive in $archive_list; do
  297.     _tmp_str=`echo $archive | grep "^Xclamation"`
  298.     if [ -z "$_tmp_str" ]; then
  299.      _new_archive="$_new_archive $archive"
  300.     fi
  301.    done
  302.    archive_list=$_new_archive
  303.    is_xcl="no"
  304.   fi
  305.  done    
  306. fi
  307.  
  308. if [ $is_xquad = "yes" -a -w $prefix/lib/xquadrc ]; then
  309.  _answer=-1
  310.  echo "A version a XQuad is already installed."
  311.  while [ "$_answer" = "-1" ]; do
  312.   AskYesNo "\ Continue the installation of XQuad's packages ? [y/n]:" _answer
  313.   if [ "$_answer" = "0" ]; then
  314.    _new_archive=""
  315.    for archive in $archive_list; do
  316.     _tmp_str=`echo $archive | grep "^XQuad"`
  317.     if [ -z "$_tmp_str" ]; then
  318.      _new_archive="$_new_archive $archive"
  319.     fi
  320.    done
  321.    archive_list=$_new_archive
  322.    is_xquad="no"
  323.   fi
  324.  done    
  325. fi
  326.  
  327. if [ $is_xallwrite = "yes" -a -w $prefix/lib/xallwriterc ]; then
  328.  _answer=-1
  329.  echo "A version a XAllWrite is already installed."
  330.  while [ "$_answer" = "-1" ]; do
  331.   AskYesNo "\ Continue the installation of XAllWrite's packages ? [y/n]:" \
  332.     _answer
  333.   if [ "$_answer" = "0" ]; then
  334.    _new_archive=""
  335.    for archive in $archive_list; do
  336.     _tmp_str=`echo $archive | grep "^XAllWrite"`
  337.     if [ -z "$_tmp_str" ]; then
  338.      _new_archive="$_new_archive $archive"
  339.     fi
  340.    done
  341.    archive_list=$_new_archive
  342.    is_xallwrite="no"
  343.   fi
  344.  done    
  345. fi
  346.  
  347. if [ $is_xmayday = "yes" -a -w $prefix/lib/xmaydayrc ]; then
  348.  _answer=-1
  349.  echo "A version a XMayday is already installed."
  350.  while [ "$_answer" = "-1" ]; do
  351.   AskYesNo "\ Continue the installation of XMayday's package(s) ? [y/n]:" \
  352.            _answer
  353.   if [ "$_answer" = "0" ]; then
  354.    _new_archive=""
  355.    for archive in $archive_list; do
  356.     _tmp_str=`echo $archive | grep "^XMayday"`
  357.     if [ -z "$_tmp_str" ]; then
  358.      _new_archive="$_new_archive $archive"
  359.     fi
  360.    done
  361.    archive_list=$_new_archive
  362.    is_xmayday="no"
  363.   fi
  364.  done    
  365. fi
  366.  
  367. if [ $is_axeneoffice = "yes" -a -w $prefix/app-defaults/AxeneOffice ]; then
  368.  _answer=-1
  369.  echo "A version a AxeneOffice is already installed."
  370.  while [ "$_answer" = "-1" ]; do
  371.   AskYesNo "\ Continue the installation of AxeneOffice's package(s) ? [y/n]:" \
  372.            _answer
  373.   if [ "$_answer" = "0" ]; then
  374.    _new_archive=""
  375.    for archive in $archive_list; do
  376.     _tmp_str=`echo $archive | grep "^AxeneOffice"`
  377.     if [ -z "$_tmp_str" ]; then
  378.      _new_archive="$_new_archive $archive"
  379.     fi
  380.    done
  381.    archive_list=$_new_archive
  382.    is_axeneoffice="no"
  383.   fi
  384.  done    
  385. fi
  386.  
  387. if [ -z "$archive_list" ]; then
  388.  SkipLine
  389.  echo "No package to install. The installation is over."
  390.  exit 0
  391. fi
  392.  
  393. if [ "$is_xcl" = "no" -a "$is_xquad" = "no" -a "$is_xallwrite" = "no" -a \
  394. "$is_xmayday" = "no" -a "$is_axeneoffice" = "no" ]; then
  395.  is_exec="no"
  396. fi
  397.  
  398. #--- Check the umask validity ---
  399. _umask=`umask 2>/dev/null`
  400. if [ "$?" = "0" ]; then 
  401.  _o=`expr $_umask % 10`
  402.  _g=`expr $_umask / 10 % 10`
  403.  _u=`expr $_umask / 100 % 10`
  404.  _ask4umask=0
  405.  if [ ! "$_u" = "0" ]; then _ask4umask=1; else
  406.   if [ ! "$_g" = "0" -a ! "$_g" = "2" ]; then _ask4umask=2; else
  407.    if [ ! "$_o" = "0" -a ! "$_o" = "2" ]; then _ask4umask=3; fi
  408.   fi
  409.  fi
  410.  if [ ! "$_ask4umask" = "0" ]; then
  411.   SkipLine
  412.   if [ $is_exec = "yes" ]; then
  413.    _access="execute Axene's softwares."
  414.   else
  415.    _access="have access to software's data."
  416.   fi
  417.   case $_ask4umask in
  418.    "1")
  419.     echo "Your umask ($_umask) won't allow you to $_access";;
  420.    "2")
  421.     echo "Your umask ($_umask) won't let the users of your group $_access";;
  422.    "3") 
  423.     echo "Your umask ($_umask) won't let every users $_access";;
  424.   esac
  425.   _answer=-1
  426.   while [ "$_answer" = "-1" ]; do
  427.    AskYesNo "\ Change the rights for depacking ? [y/n]:" _answer
  428.    if [ "$_answer" = "1" ]; then
  429.     SkipLine
  430.     echo "  1. Let every users $_access [Default]"
  431.     echo "  2. Let only the users of your group $_access"
  432.     echo "  3. Let only you execute $_access"
  433.     echo "  4. Enter the umask for depacking. [for expert user]"
  434.     echo "  5. Proceed with original umask ($_umask)."
  435.     _answer=-1
  436.     while [ "$_answer" = "-1" ]; do
  437.      $ECHONL1"Your choice: "$ECHONL2
  438.      read _ask
  439.      if [ -z "$_ask" ]; then _ask="1"; fi
  440.      case $_ask in
  441.       "1")
  442.        umask 022 2>/dev/null || Fatal "failed to change the umask."
  443.        _answer=1;;
  444.       "2")
  445.        umask 027 2>/dev/null || Fatal "failed to change the umask."
  446.        _answer=1;;
  447.       "3")
  448.        umask 077 2>/dev/null || Fatal "failed to change the umask."
  449.        _answer=1;;
  450.       "4")
  451.        while [ "$_answer" = "-1" ]; do
  452.         $ECHONL1" Enter the umask for depacking: "$ECHONL2
  453.         read _ask
  454.         if [ `expr "$_ask" : "^[0-7][0-7][0-7]$"` = "0" ]; then
  455.          echo " Malformed umask."
  456.         else
  457.          umask $_ask 2>/dev/null || Fatal "failed to change the umask."
  458.          _answer=1
  459.         fi
  460.        done;;
  461.       "5")
  462.        _answer=1;;
  463.      esac
  464.     done
  465.    fi
  466.   done
  467.  fi
  468. fi
  469.  
  470. #--- Get Gunzip and tar ---
  471. Debug "Find Gunzip and tar"
  472. old_ifs="$IFS"
  473. IFS="$IFS:"
  474. for mypath in $PATH; do
  475.   if [ -n "$mypath" ]; then
  476.     test -z "$cmd_gunzip" -a -x $mypath/gunzip && cmd_gunzip=$mypath/gunzip
  477.     test -z "$cmd_tar" -a -x $mypath/gtar && cmd_tar=$mypath/gtar
  478.     test -z "$cmd_tar" -a -x $mypath/tar && cmd_tar=$mypath/tar
  479.   fi
  480. done
  481. IFS=$old_ifs
  482.  
  483. #--- Check Gunzip ---
  484. if [ -z "$cmd_gunzip" ]; then
  485.   echo "command \`gunzip' not found, please enter full path and name"
  486.   echo "(RETURN: Abort installation)"
  487.   cmd_gunzip="NoNe"
  488.   while [ ! -x $cmd_gunzip -o -d $cmd_gunzip ]; do
  489.    $ECHONL1"Your \`gunzip' location: "$ECHONL2
  490.    read _ask
  491.    test -n "$_ask" || Fatal "You can get gunzip for your machine at ftp.axene.com"
  492.    cmd_gunzip="$_ask"
  493.    if [ -d $cmd_gunzip ]; then
  494.     echo "command '$cmd_gunzip' is a directory, try again (or RETURN to abort)"
  495.     continue
  496.    fi
  497.    if [ ! -x $cmd_gunzip ]; then
  498.     echo "command '$cmd_gunzip' not found, try again (or RETURN to abort)"
  499.    fi
  500.   done
  501. else
  502.   echo "Using $cmd_gunzip to decompress archives"
  503. fi
  504.  
  505. #--- Check tar ---
  506. if [ -z "$cmd_tar" ]; then
  507.   echo "Command \`tar' not found, please enter location"
  508.   echo "(RETURN: Abort installation)"
  509.   cmd_tar="NoNe"
  510.   while [ ! -x $cmd_tar -o -d $cmd_tar ]; do
  511.    $ECHONL1"Your \`tar' location: "$ECHONL2
  512.    read _ask
  513.    test -n "$_ask" || Fatal "Installation aborted"
  514.    cmd_tar="$_ask"
  515.    if [ -d $cmd_tar ]; then
  516.     echo "'$cmd_tar' is a directory, try again (or RETURN to abort)"
  517.     continue
  518.    fi
  519.    if [ ! -x $cmd_tar ]; then
  520.     echo "file '$cmd_tar' not found, try again (or RETURN to abort)"
  521.    fi
  522.   done
  523. else
  524.   echo "Using $cmd_tar to extract files from archives"
  525. fi
  526.  
  527. #--- Depack archives ---
  528. cd $prefix
  529. for archive in $archive_list; do
  530.   SkipLine
  531.   echo "=============================================================="
  532.   echo "Depacking archive $archive:"
  533.   echo "=============================================================="
  534.   _tmp_str=`echo $_package | grep "^Xclamation"`
  535.   if [ -n "$_tmp_str" ]; then
  536.    if [ -w $prefix/lib/xclamationrc ]; then
  537.     rm -f $prefix/lib/xclamationrc
  538.    fi
  539.    if [ -w $prefix/app-defaults/Xclamation ]; then
  540.     rm -f $prefix/app-defaults/Xclamation
  541.    fi
  542.   fi
  543.   _tmp_str=`echo $_package | grep "^XQuad"`
  544.   if [ -n "$_tmp_str" ]; then
  545.    if [ -w $prefix/lib/xquadrc ]; then
  546.     rm -f $prefix/lib/xquadrc
  547.    fi
  548.    if [ -w $prefix/app-defaults/XQuad ]; then
  549.     rm -f $prefix/app-defaults/XQuad
  550.    fi
  551.   fi
  552.   _tmp_str=`echo $_package | grep "^XAllWrite"`
  553.   if [ -n "$_tmp_str" ]; then
  554.    if [ -w $prefix/lib/xallwriterc ]; then
  555.     rm -f $prefix/lib/xallwriterc
  556.    fi
  557.    if [ -w $prefix/app-defaults/XAllWrite ]; then
  558.     rm -f $prefix/app-defaults/XAllWrite
  559.    fi
  560.   fi
  561.   _tmp_str=`echo $_package | grep "^XMayday"`
  562.   if [ -n "$_tmp_str" ]; then
  563.    if [ -w $prefix/lib/xmaydayrc ]; then
  564.     rm -f $prefix/lib/xmaydayrc
  565.    fi
  566.    if [ -w $prefix/app-defaults/XMayday ]; then
  567.     rm -f $prefix/app-defaults/XMayday
  568.    fi
  569.   fi
  570.   _tmp_str=`echo $_package | grep "^AxeneOffice"`
  571.   if [ -n "$_tmp_str" ]; then
  572.    if [ -w $prefix/app-defaults/AxeneOffice ]; then
  573.     rm -f $prefix/app-defaults/AxeneOffice
  574.    fi
  575.   fi
  576.   $cmd_gunzip -c $src_dir/$archive | $cmd_tar xvf - || \
  577.     Fatal "Installation aborted"
  578.   rm -f $prefix/.[a-zA-Z]*  
  579. done
  580.  
  581.  
  582. if [ $is_exec = "yes" ]; then
  583.  #--- Get languages ---
  584.  SkipLine
  585.  languages=
  586.  test -r lib/locale/languages || Fatal "The \`languages' file is missing!"
  587.  exec 5<lib/locale/languages
  588.  while read lang <&5 ; do
  589.    languages="$languages $lang"
  590.  done
  591.  exec 5<&-
  592.  AskOneFromList "Choose language" 0 lang $languages
  593.  
  594.  #--- Link ressources files ---
  595.  if [ ! -d $prefix/app-defaults ]; then
  596.   mkdir $prefix/app-defaults || exit 1
  597.   chmod 755 $prefix/app-defaults || exit 1
  598.  fi
  599.  
  600.  #--- Link config files ---
  601.  cd $prefix/lib/locale/
  602.  for file in *rc.$lang; do
  603.   cd $prefix/lib
  604.   file=`basename $file .$lang`
  605.   if [ -f $file -a -w $file ]; then
  606.    doit="no"
  607.    case `basename $file` in
  608.     "xclamationrc") [ $is_xcl = "yes" ] && doit="yes";;
  609.     "xquadrc") [ $is_xquad = "yes" ] && doit="yes";;
  610.     "xallwriterc") [ $is_xallwrite = "yes" ] && doit="yes";;
  611.     "xmaydayrc") [ $is_xmayday = "yes" ] && doit="yes";;
  612.    esac
  613.    if [ $doit = "yes" ]; then
  614.     echo deleting old $file
  615.     rm $file
  616.     ln -s locale/$file.$lang $file
  617.    fi
  618.   fi
  619.  done
  620.  
  621.  cd $prefix/lib/locale/
  622.  for file in *.$lang; do
  623.   cd $prefix/app-defaults
  624.   file=`basename $file .$lang`
  625.   if [ -f $file -a -w $file ]; then
  626.    doit="no"
  627.    case `basename $file` in
  628.     "Xclamation") [ $is_xcl = "yes" ] && doit="yes";;
  629.     "XQuad") [ $is_xquad = "yes" ] && doit="yes";;
  630.     "XAllWrite") [ $is_xallwrite = "yes" ] && doit="yes";;
  631.     "XMayday") [ $is_xmayday = "yes" ] && doit="yes";;
  632.     "AxeneOffice") [ $is_axeneoffice = "yes" ] && doit="yes";;
  633.    esac
  634.    if [ $doit = "yes" ]; then
  635.     echo deleting old $file
  636.     rm $file
  637.     ln -s ../lib/locale/$file.$lang $file
  638.    fi
  639.   fi
  640.  done
  641. fi 
  642.  
  643. if [ $is_xcl = "yes" ]; then
  644.  
  645. #--- Create Exec Script For Xclamation ---
  646. echo "Building script for Xclamation: Xclamation"
  647. cat << __EOT__ > $prefix/Xclamation
  648. #!/bin/sh
  649. # Xclamation
  650. # Xclamation script
  651. # Copyright (c)1996. All Rights reserved Axene.
  652. # EMail: <xcalibur@axene.com>
  653. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  654. # Last update Fri Feb  9 14:47:40 1996 Gudul
  655. #
  656.  
  657. #--- Init global variables
  658. SkipLine() { echo " "; }
  659. Fatal() { echo "\${progname}: error: \${1}" 1>&2 ; exit 1; }
  660.  
  661. progname=\`basename \$0\`
  662. bin_list=
  663. name_base=Xclamation
  664.  
  665. # ---------------------------------------------------------------------- # 
  666. # AskOneFromList - Let the user choose an item among a list              # 
  667. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  668. # ---------------------------------------------------------------------- #
  669. AskOneFromList()
  670. {
  671.   _ask_text=\$1
  672.   _ask_default=\$2
  673.   _ask_var=\$3
  674.   shift 3
  675.   _arg_all=\$@
  676.   _arg_num=\$#
  677.  
  678.   while :; do
  679.     if [ "\$force_flag" = "yes" ]; then
  680.       return \$_ask_default
  681.     else
  682.       echo \$_ask_text
  683.       _ask_count=0
  684.       while [ \$_ask_count -lt \$_arg_num ]; do
  685.         if [ \$_ask_count -eq \$_ask_default ]; then
  686.           _ask_reply="(DEFAULT)"
  687.         else
  688.           _ask_reply=
  689.         fi
  690.         _ask_count=\`expr \$_ask_count + 1\`
  691.         eval "echo \"  \\\$_ask_count. \\\$1 \$_ask_reply\""
  692.     shift 1
  693.       done
  694.       read _ask_reply
  695.       if [ -z "\$_ask_reply" ]; then
  696.     _arg_cnt=0
  697.         for _ask_phrase in \$_arg_all; do
  698.          if [ \$_arg_cnt -eq \$_ask_default ]; then
  699.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  700.           break
  701.         fi
  702.         _arg_cnt=\`expr \$_arg_cnt + 1\`
  703.         done        
  704.     return \$_ask_default
  705.       fi
  706.       if [ \$_ask_reply -gt 0 -a \$_ask_reply -le \$_arg_num ]; then
  707.         SkipLine
  708.     _arg_cnt=1
  709.         for _ask_phrase in \$_arg_all; do
  710.          if [ \$_arg_cnt -eq \$_ask_reply ]; then
  711.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  712.           break
  713.          fi
  714.          _arg_cnt=\`expr \$_arg_cnt + 1\`
  715.         done
  716.         return \`expr \$_ask_reply - 1\`
  717.       fi
  718.       echo "ERROR: You must enter a number between 1 and \$_arg_num"
  719.       exit 1
  720.     fi
  721.   done
  722.  
  723. # ---------------------------------------------------------------------- # 
  724. # ---------------------------------------------------------------------- #
  725. TestInHostList()
  726. {
  727.  _Host=`hostname`
  728.  _HostsDB=\$ZHOME/lib/locale/axene.hosts
  729.  
  730.  _count_exec=0
  731.  for _file in \$ZHOME/bin/\${name_base}*; do
  732.   if [ -x \$_file ]; then
  733.    _count_exec=\`expr \$_count_exec + 1\`
  734.   fi
  735.  done
  736.  
  737.  if [ "\$_count_exec" -eq "0" ]; then
  738.    Fatal "No executable found in \$ZHOME/bin/"
  739.  fi
  740.  
  741.  if [ "\$_count_exec" -eq "1" ]; then
  742.   bin_list=\$ZHOME/bin/\${name_base}*
  743.  else
  744.   _No_Host=0
  745.   _Bin_ok=0
  746.   test -r \$_HostsDB || _No_Host=1
  747.   if [ "\$_No_Host" -eq "0" ]; then
  748.    exec 5<\$_HostsDB
  749.    while read _v_host <&5 ; do
  750.      if [ "\$_v_host" = "\$_Host" ]; then
  751.       read bin_list <&5
  752.       bin_list=\$ZHOME/bin/\${name_base}.\${bin_list}
  753.       _Bin_ok=1
  754.       while read _v_host <&5 ; do
  755.       echo flush > /dev/null
  756.       done
  757.      else
  758.       read _v_burk <&5
  759.       read _v_burk <&5
  760.      fi
  761.    done
  762.    exec 5<&-
  763.   else
  764.    echo "No \$_HostsDB defined."
  765.    if [ -w \$ZHOME/lib/locale/ ]; then
  766.     touch \$_HostsDB
  767.    else
  768.     echo "Not authorized to write into directory \$ZHOME/lib/locale/"
  769.    fi
  770.   fi
  771.      
  772.   if [ "\$_Bin_ok" -eq "0" ]; then
  773.    AskOneFromList "Please select the program to execute on \$_Host" 0 bin_list \$ZHOME/bin/\${name_base}*
  774.    if [ ! -w \$_HostsDB ]; then
  775.     echo "Could not add this entry to \$_HostsDB"
  776.    else
  777.     echo "host \\\`\$_Host\' is now associated with program :"
  778.     echo "\\\`\$bin_list\'."
  779.     echo "(if error, edit or delete \$_HostsDB)" 
  780.     echo \$_Host >> \$_HostsDB
  781.     echo \$bin_list | cut -d"." -f2- >> \$_HostsDB
  782.     echo ----- >> \$_HostsDB
  783.    fi
  784.   fi
  785.  fi
  786. }
  787.  
  788. ZHOME=$prefix
  789. AXENE_LIB=\$ZHOME/lib
  790. XCLAMATION_LIB=\$ZHOME/lib
  791. XAPPLRESDIR=\$ZHOME/app-defaults
  792. export AXENE_LIB XCLAMATION_LIB XAPPLRESDIR
  793.  
  794. TestInHostList
  795. exec \$bin_list \$@
  796.  
  797. __EOT__
  798. chmod 755 $prefix/Xclamation
  799. fi
  800.  
  801. if [ $is_xquad = "yes" ]; then 
  802. #--- Create Exec Script For XQuad ---
  803. echo "Building script for XQuad: XQuad"
  804. cat << __EOT__ > $prefix/XQuad
  805. #!/bin/sh
  806. # XQuad
  807. # XQuad script
  808. # Copyright (c)1996. All Rights reserved Axene.
  809. # EMail: <xcalibur@axene.com>
  810. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  811. # Last update Fri Feb  9 14:47:40 1996 Gudul
  812. #
  813.  
  814. #--- Init global variables
  815. SkipLine() { echo " "; }
  816. Fatal() { echo "\${progname}: error: \${1}" 1>&2 ; exit 1; }
  817.  
  818. progname=\`basename \$0\`
  819. bin_list=
  820. name_base=XQuad
  821.  
  822. # ---------------------------------------------------------------------- # 
  823. # AskOneFromList - Let the user choose an item among a list              # 
  824. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  825. # ---------------------------------------------------------------------- #
  826. AskOneFromList()
  827. {
  828.   _ask_text=\$1
  829.   _ask_default=\$2
  830.   _ask_var=\$3
  831.   shift 3
  832.   _arg_all=\$@
  833.   _arg_num=\$#
  834.  
  835.   while :; do
  836.     if [ "\$force_flag" = "yes" ]; then
  837.       return \$_ask_default
  838.     else
  839.       echo \$_ask_text
  840.       _ask_count=0
  841.       while [ \$_ask_count -lt \$_arg_num ]; do
  842.         if [ \$_ask_count -eq \$_ask_default ]; then
  843.           _ask_reply="(DEFAULT)"
  844.         else
  845.           _ask_reply=
  846.         fi
  847.         _ask_count=\`expr \$_ask_count + 1\`
  848.         eval "echo \"  \\\$_ask_count. \\\$1 \$_ask_reply\""
  849.     shift 1
  850.       done
  851.       read _ask_reply
  852.       if [ -z "\$_ask_reply" ]; then
  853.     _arg_cnt=0
  854.         for _ask_phrase in \$_arg_all; do
  855.          if [ \$_arg_cnt -eq \$_ask_default ]; then
  856.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  857.           break
  858.         fi
  859.         _arg_cnt=\`expr \$_arg_cnt + 1\`
  860.         done        
  861.     return \$_ask_default
  862.       fi
  863.       if [ \$_ask_reply -gt 0 -a \$_ask_reply -le \$_arg_num ]; then
  864.         SkipLine
  865.     _arg_cnt=1
  866.         for _ask_phrase in \$_arg_all; do
  867.          if [ \$_arg_cnt -eq \$_ask_reply ]; then
  868.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  869.           break
  870.          fi
  871.          _arg_cnt=\`expr \$_arg_cnt + 1\`
  872.         done
  873.         return \`expr \$_ask_reply - 1\`
  874.       fi
  875.       echo "ERROR: You must enter a number between 1 and \$_arg_num"
  876.       exit 1
  877.     fi
  878.   done
  879.  
  880. # ---------------------------------------------------------------------- # 
  881. # ---------------------------------------------------------------------- #
  882. TestInHostList()
  883. {
  884.  _Host=`hostname`
  885.  _HostsDB=\$ZHOME/lib/locale/axene.hosts
  886.  
  887.  _count_exec=0
  888.  for _file in \$ZHOME/bin/\${name_base}*; do
  889.   if [ -x \$_file ]; then
  890.    _count_exec=\`expr \$_count_exec + 1\`
  891.   fi
  892.  done
  893.  
  894.  if [ "\$_count_exec" -eq "0" ]; then
  895.    Fatal "No executable found in \$ZHOME/bin/"
  896.  fi
  897.  
  898.  if [ "\$_count_exec" -eq "1" ]; then
  899.   bin_list=\$ZHOME/bin/\${name_base}*
  900.  else
  901.   _No_Host=0
  902.   _Bin_ok=0
  903.   test -r \$_HostsDB || _No_Host=1
  904.   if [ "\$_No_Host" -eq "0" ]; then
  905.    exec 5<\$_HostsDB
  906.    while read _v_host <&5 ; do
  907.      if [ "\$_v_host" = "\$_Host" ]; then
  908.       read bin_list <&5
  909.       bin_list=\$ZHOME/bin/\${name_base}.\${bin_list}
  910.       _Bin_ok=1
  911.       while read _v_host <&5 ; do
  912.       echo flush > /dev/null
  913.       done
  914.      else
  915.       read _v_burk <&5
  916.       read _v_burk <&5
  917.      fi
  918.    done
  919.    exec 5<&-
  920.   else
  921.    echo "No \$_HostsDB defined."
  922.    if [ -w \$ZHOME/lib/locale/ ]; then
  923.     touch \$_HostsDB
  924.    else
  925.     echo "Not authorized to write into directory \$ZHOME/lib/locale/"
  926.    fi
  927.   fi
  928.      
  929.   if [ "\$_Bin_ok" -eq "0" ]; then
  930.    AskOneFromList "Please select the program to execute on \$_Host" 0 bin_list \$ZHOME/bin/\${name_base}*
  931.    if [ ! -w \$_HostsDB ]; then
  932.     echo "Could not add this entry to \$_HostsDB"
  933.    else
  934.     echo "host \\\`\$_Host\' is now associated with program :"
  935.     echo "\\\`\$bin_list\'."
  936.     echo "(if error, edit or delete \$_HostsDB)" 
  937.     echo \$_Host >> \$_HostsDB
  938.     echo \$bin_list | cut -d"." -f2- >> \$_HostsDB
  939.     echo ----- >> \$_HostsDB
  940.    fi
  941.   fi
  942.  fi
  943. }
  944.  
  945. ZHOME=$prefix
  946. AXENE_LIB=\$ZHOME/lib
  947. XQUAD_LIB=\$ZHOME/lib
  948. XAPPLRESDIR=\$ZHOME/app-defaults
  949. export AXENE_LIB XQUAD_LIB XAPPLRESDIR
  950.  
  951. TestInHostList
  952. exec \$bin_list \$@
  953.  
  954. __EOT__
  955. chmod 755 $prefix/XQuad
  956. fi
  957.  
  958. if [ $is_xallwrite = "yes" ]; then 
  959. #--- Create Exec Script For XAllWrite ---
  960. echo "Building script for XAllWrite: XAllWrite"
  961. cat << __EOT__ > $prefix/XAllWrite
  962. #!/bin/sh
  963. # XAllWrite
  964. # XAllWrite script
  965. # Copyright (c)1996. All Rights reserved Axene.
  966. # EMail: <xcalibur@axene.com>
  967. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  968. # Last update Fri Feb  9 14:47:40 1996 Gudul
  969. #
  970.  
  971. #--- Init global variables
  972. SkipLine() { echo " "; }
  973. Fatal() { echo "\${progname}: error: \${1}" 1>&2 ; exit 1; }
  974.  
  975. progname=\`basename \$0\`
  976. bin_list=
  977. name_base=XAllWrite
  978.  
  979. # ---------------------------------------------------------------------- # 
  980. # AskOneFromList - Let the user choose an item among a list              # 
  981. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  982. # ---------------------------------------------------------------------- #
  983. AskOneFromList()
  984. {
  985.   _ask_text=\$1
  986.   _ask_default=\$2
  987.   _ask_var=\$3
  988.   shift 3
  989.   _arg_all=\$@
  990.   _arg_num=\$#
  991.  
  992.   while :; do
  993.     if [ "\$force_flag" = "yes" ]; then
  994.       return \$_ask_default
  995.     else
  996.       echo \$_ask_text
  997.       _ask_count=0
  998.       while [ \$_ask_count -lt \$_arg_num ]; do
  999.         if [ \$_ask_count -eq \$_ask_default ]; then
  1000.           _ask_reply="(DEFAULT)"
  1001.         else
  1002.           _ask_reply=
  1003.         fi
  1004.         _ask_count=\`expr \$_ask_count + 1\`
  1005.         eval "echo \"  \\\$_ask_count. \\\$1 \$_ask_reply\""
  1006.     shift 1
  1007.       done
  1008.       read _ask_reply
  1009.       if [ -z "\$_ask_reply" ]; then
  1010.     _arg_cnt=0
  1011.         for _ask_phrase in \$_arg_all; do
  1012.          if [ \$_arg_cnt -eq \$_ask_default ]; then
  1013.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1014.           break
  1015.         fi
  1016.         _arg_cnt=\`expr \$_arg_cnt + 1\`
  1017.         done        
  1018.     return \$_ask_default
  1019.       fi
  1020.       if [ \$_ask_reply -gt 0 -a \$_ask_reply -le \$_arg_num ]; then
  1021.         SkipLine
  1022.     _arg_cnt=1
  1023.         for _ask_phrase in \$_arg_all; do
  1024.          if [ \$_arg_cnt -eq \$_ask_reply ]; then
  1025.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1026.           break
  1027.          fi
  1028.          _arg_cnt=\`expr \$_arg_cnt + 1\`
  1029.         done
  1030.         return \`expr \$_ask_reply - 1\`
  1031.       fi
  1032.       echo "ERROR: You must enter a number between 1 and \$_arg_num"
  1033.       exit 1
  1034.     fi
  1035.   done
  1036.  
  1037. # ---------------------------------------------------------------------- # 
  1038. # ---------------------------------------------------------------------- #
  1039. TestInHostList()
  1040. {
  1041.  _Host=`hostname`
  1042.  _HostsDB=\$ZHOME/lib/locale/axene.hosts
  1043.  
  1044.  _count_exec=0
  1045.  for _file in \$ZHOME/bin/\${name_base}*; do
  1046.   if [ -x \$_file ]; then
  1047.    _count_exec=\`expr \$_count_exec + 1\`
  1048.   fi
  1049.  done
  1050.  
  1051.  if [ "\$_count_exec" -eq "0" ]; then
  1052.    Fatal "No executable found in \$ZHOME/bin/"
  1053.  fi
  1054.  
  1055.  if [ "\$_count_exec" -eq "1" ]; then
  1056.   bin_list=\$ZHOME/bin/\${name_base}*
  1057.  else
  1058.   _No_Host=0
  1059.   _Bin_ok=0
  1060.   test -r \$_HostsDB || _No_Host=1
  1061.   if [ "\$_No_Host" -eq "0" ]; then
  1062.    exec 5<\$_HostsDB
  1063.    while read _v_host <&5 ; do
  1064.      if [ "\$_v_host" = "\$_Host" ]; then
  1065.       read bin_list <&5
  1066.       bin_list=\$ZHOME/bin/\${name_base}.\${bin_list}
  1067.       _Bin_ok=1
  1068.       while read _v_host <&5 ; do
  1069.       echo flush > /dev/null
  1070.       done
  1071.      else
  1072.       read _v_burk <&5
  1073.       read _v_burk <&5
  1074.      fi
  1075.    done
  1076.    exec 5<&-
  1077.   else
  1078.    echo "No \$_HostsDB defined."
  1079.    if [ -w \$ZHOME/lib/locale/ ]; then
  1080.     touch \$_HostsDB
  1081.    else
  1082.     echo "Not authorized to write into directory \$ZHOME/lib/locale/"
  1083.    fi
  1084.   fi
  1085.      
  1086.   if [ "\$_Bin_ok" -eq "0" ]; then
  1087.    AskOneFromList "Please select the program to execute on \$_Host" 0 bin_list \$ZHOME/bin/\${name_base}*
  1088.    if [ ! -w \$_HostsDB ]; then
  1089.     echo "Could not add this entry to \$_HostsDB"
  1090.    else
  1091.     echo "host \\\`\$_Host\' is now associated with program :"
  1092.     echo "\\\`\$bin_list\'."
  1093.     echo "(if error, edit or delete \$_HostsDB)" 
  1094.     echo \$_Host >> \$_HostsDB
  1095.     echo \$bin_list | cut -d"." -f2- >> \$_HostsDB
  1096.     echo ----- >> \$_HostsDB
  1097.    fi
  1098.   fi
  1099.  fi
  1100. }
  1101.  
  1102. ZHOME=$prefix
  1103. AXENE_LIB=\$ZHOME/lib
  1104. XALLWRITE_LIB=\$ZHOME/lib
  1105. XAPPLRESDIR=\$ZHOME/app-defaults
  1106. export AXENE_LIB XALLWRITE_LIB XAPPLRESDIR
  1107.  
  1108. TestInHostList
  1109. exec \$bin_list \$@
  1110.  
  1111. __EOT__
  1112. chmod 755 $prefix/XAllWrite
  1113. fi
  1114.  
  1115. if [ $is_xmayday = "yes" ]; then 
  1116. #--- Create Exec Script For XMayday ---
  1117. echo "Building script for XMayday: XMayday"
  1118. cat << __EOT__ > $prefix/XMayday
  1119. #!/bin/sh
  1120. # XMayday
  1121. # XMayday script
  1122. # Copyright (c)1996. All Rights reserved Axene.
  1123. # EMail: <xcalibur@axene.com>
  1124. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  1125. # Last update Fri Feb  9 14:47:40 1996 Gudul
  1126. #
  1127.  
  1128. #--- Init global variables
  1129. SkipLine() { echo " "; }
  1130. Fatal() { echo "\${progname}: error: \${1}" 1>&2 ; exit 1; }
  1131.  
  1132. progname=\`basename \$0\`
  1133. bin_list=
  1134. name_base=XMayday
  1135.  
  1136. # ---------------------------------------------------------------------- # 
  1137. # AskOneFromList - Let the user choose an item among a list              # 
  1138. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  1139. # ---------------------------------------------------------------------- #
  1140. AskOneFromList()
  1141. {
  1142.   _ask_text=\$1
  1143.   _ask_default=\$2
  1144.   _ask_var=\$3
  1145.   shift 3
  1146.   _arg_all=\$@
  1147.   _arg_num=\$#
  1148.  
  1149.   while :; do
  1150.     if [ "\$force_flag" = "yes" ]; then
  1151.       return \$_ask_default
  1152.     else
  1153.       echo \$_ask_text
  1154.       _ask_count=0
  1155.       while [ \$_ask_count -lt \$_arg_num ]; do
  1156.         if [ \$_ask_count -eq \$_ask_default ]; then
  1157.           _ask_reply="(DEFAULT)"
  1158.         else
  1159.           _ask_reply=
  1160.         fi
  1161.         _ask_count=\`expr \$_ask_count + 1\`
  1162.         eval "echo \"  \\\$_ask_count. \\\$1 \$_ask_reply\""
  1163.     shift 1
  1164.       done
  1165.       read _ask_reply
  1166.       if [ -z "\$_ask_reply" ]; then
  1167.     _arg_cnt=0
  1168.         for _ask_phrase in \$_arg_all; do
  1169.          if [ \$_arg_cnt -eq \$_ask_default ]; then
  1170.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1171.           break
  1172.         fi
  1173.         _arg_cnt=\`expr \$_arg_cnt + 1\`
  1174.         done        
  1175.     return \$_ask_default
  1176.       fi
  1177.       if [ \$_ask_reply -gt 0 -a \$_ask_reply -le \$_arg_num ]; then
  1178.         SkipLine
  1179.     _arg_cnt=1
  1180.         for _ask_phrase in \$_arg_all; do
  1181.          if [ \$_arg_cnt -eq \$_ask_reply ]; then
  1182.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1183.           break
  1184.          fi
  1185.          _arg_cnt=\`expr \$_arg_cnt + 1\`
  1186.         done
  1187.         return \`expr \$_ask_reply - 1\`
  1188.       fi
  1189.       echo "ERROR: You must enter a number between 1 and \$_arg_num"
  1190.       exit 1
  1191.     fi
  1192.   done
  1193.  
  1194. # ---------------------------------------------------------------------- # 
  1195. # ---------------------------------------------------------------------- #
  1196. TestInHostList()
  1197. {
  1198.  _Host=`hostname`
  1199.  _HostsDB=\$ZHOME/lib/locale/axene.hosts
  1200.  
  1201.  _count_exec=0
  1202.  for _file in \$ZHOME/bin/\${name_base}*; do
  1203.   if [ -x \$_file ]; then
  1204.    _count_exec=\`expr \$_count_exec + 1\`
  1205.   fi
  1206.  done
  1207.  
  1208.  if [ "\$_count_exec" -eq "0" ]; then
  1209.    Fatal "No executable found in \$ZHOME/bin/"
  1210.  fi
  1211.  
  1212.  if [ "\$_count_exec" -eq "1" ]; then
  1213.   bin_list=\$ZHOME/bin/\${name_base}*
  1214.  else
  1215.   _No_Host=0
  1216.   _Bin_ok=0
  1217.   test -r \$_HostsDB || _No_Host=1
  1218.   if [ "\$_No_Host" -eq "0" ]; then
  1219.    exec 5<\$_HostsDB
  1220.    while read _v_host <&5 ; do
  1221.      if [ "\$_v_host" = "\$_Host" ]; then
  1222.       read bin_list <&5
  1223.       bin_list=\$ZHOME/bin/\${name_base}.\${bin_list}
  1224.       _Bin_ok=1
  1225.       while read _v_host <&5 ; do
  1226.       echo flush > /dev/null
  1227.       done
  1228.      else
  1229.       read _v_burk <&5
  1230.       read _v_burk <&5
  1231.      fi
  1232.    done
  1233.    exec 5<&-
  1234.   else
  1235.    echo "No \$_HostsDB defined."
  1236.    if [ -w \$ZHOME/lib/locale/ ]; then
  1237.     touch \$_HostsDB
  1238.    else
  1239.     echo "Not authorized to write into directory \$ZHOME/lib/locale/"
  1240.    fi
  1241.   fi
  1242.      
  1243.   if [ "\$_Bin_ok" -eq "0" ]; then
  1244.    AskOneFromList "Please select the program to execute on \$_Host" 0 bin_list \$ZHOME/bin/\${name_base}*
  1245.    if [ ! -w \$_HostsDB ]; then
  1246.     echo "Could not add this entry to \$_HostsDB"
  1247.    else
  1248.     echo "host \\\`\$_Host\' is now associated with program :"
  1249.     echo "\\\`\$bin_list\'."
  1250.     echo "(if error, edit or delete \$_HostsDB)" 
  1251.     echo \$_Host >> \$_HostsDB
  1252.     echo \$bin_list | cut -d"." -f2- >> \$_HostsDB
  1253.     echo ----- >> \$_HostsDB
  1254.    fi
  1255.   fi
  1256.  fi
  1257. }
  1258.  
  1259. ZHOME=$prefix
  1260. AXENE_LIB=\$ZHOME/lib
  1261. XMAYDAY_LIB=\$ZHOME/lib
  1262. XAPPLRESDIR=\$ZHOME/app-defaults
  1263. export AXENE_LIB XMAYDAY_LIB XAPPLRESDIR
  1264.  
  1265. TestInHostList
  1266. exec \$bin_list \$@
  1267.  
  1268. __EOT__
  1269. chmod 755 $prefix/XMayday
  1270. fi
  1271.  
  1272. if [ $is_axeneoffice = "yes" ]; then 
  1273. #--- Create Exec Script For AxeneOffice ---
  1274. echo "Building script for AxeneOffice: AxeneOffice"
  1275. cat << __EOT__ > $prefix/AxeneOffice
  1276. #!/bin/sh
  1277. # AxeneOffice
  1278. # AxeneOffice script
  1279. # Copyright (c)1996. All Rights reserved Axene.
  1280. # EMail: <xcalibur@axene.com>
  1281. # Started on  Fri Nov 17 17:34:10 1995 Nucleus
  1282. # Last update Fri Feb  9 14:47:40 1996 Gudul
  1283. #
  1284.  
  1285. #--- Init global variables
  1286. SkipLine() { echo " "; }
  1287. Fatal() { echo "\${progname}: error: \${1}" 1>&2 ; exit 1; }
  1288.  
  1289. progname=\`basename \$0\`
  1290. bin_list=
  1291. name_base=AxeneOffice
  1292.  
  1293. # ---------------------------------------------------------------------- # 
  1294. # AskOneFromList - Let the user choose an item among a list              # 
  1295. #                  <text> <default-index> <var > <choice-1>...<choice-n> #
  1296. # ---------------------------------------------------------------------- #
  1297. AskOneFromList()
  1298. {
  1299.   _ask_text=\$1
  1300.   _ask_default=\$2
  1301.   _ask_var=\$3
  1302.   shift 3
  1303.   _arg_all=\$@
  1304.   _arg_num=\$#
  1305.  
  1306.   while :; do
  1307.     if [ "\$force_flag" = "yes" ]; then
  1308.       return \$_ask_default
  1309.     else
  1310.       echo \$_ask_text
  1311.       _ask_count=0
  1312.       while [ \$_ask_count -lt \$_arg_num ]; do
  1313.         if [ \$_ask_count -eq \$_ask_default ]; then
  1314.           _ask_reply="(DEFAULT)"
  1315.         else
  1316.           _ask_reply=
  1317.         fi
  1318.         _ask_count=\`expr \$_ask_count + 1\`
  1319.         eval "echo \"  \\\$_ask_count. \\\$1 \$_ask_reply\""
  1320.     shift 1
  1321.       done
  1322.       read _ask_reply
  1323.       if [ -z "\$_ask_reply" ]; then
  1324.     _arg_cnt=0
  1325.         for _ask_phrase in \$_arg_all; do
  1326.          if [ \$_arg_cnt -eq \$_ask_default ]; then
  1327.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1328.           break
  1329.         fi
  1330.         _arg_cnt=\`expr \$_arg_cnt + 1\`
  1331.         done        
  1332.     return \$_ask_default
  1333.       fi
  1334.       if [ \$_ask_reply -gt 0 -a \$_ask_reply -le \$_arg_num ]; then
  1335.         SkipLine
  1336.     _arg_cnt=1
  1337.         for _ask_phrase in \$_arg_all; do
  1338.          if [ \$_arg_cnt -eq \$_ask_reply ]; then
  1339.           eval "\$_ask_var=\"\\\$_ask_phrase\""
  1340.           break
  1341.          fi
  1342.          _arg_cnt=\`expr \$_arg_cnt + 1\`
  1343.         done
  1344.         return \`expr \$_ask_reply - 1\`
  1345.       fi
  1346.       echo "ERROR: You must enter a number between 1 and \$_arg_num"
  1347.       exit 1
  1348.     fi
  1349.   done
  1350.  
  1351. # ---------------------------------------------------------------------- # 
  1352. # ---------------------------------------------------------------------- #
  1353. TestInHostList()
  1354. {
  1355.  _Host=`hostname`
  1356.  _HostsDB=\$ZHOME/lib/locale/axene.hosts
  1357.  
  1358.  _count_exec=0
  1359.  for _file in \$ZHOME/bin/\${name_base}*; do
  1360.   if [ -x \$_file ]; then
  1361.    _count_exec=\`expr \$_count_exec + 1\`
  1362.   fi
  1363.  done
  1364.  
  1365.  if [ "\$_count_exec" -eq "0" ]; then
  1366.    Fatal "No executable found in \$ZHOME/bin/"
  1367.  fi
  1368.  
  1369.  if [ "\$_count_exec" -eq "1" ]; then
  1370.   bin_list=\$ZHOME/bin/\${name_base}*
  1371.  else
  1372.   _No_Host=0
  1373.   _Bin_ok=0
  1374.   test -r \$_HostsDB || _No_Host=1
  1375.   if [ "\$_No_Host" -eq "0" ]; then
  1376.    exec 5<\$_HostsDB
  1377.    while read _v_host <&5 ; do
  1378.      if [ "\$_v_host" = "\$_Host" ]; then
  1379.       read bin_list <&5
  1380.       bin_list=\$ZHOME/bin/\${name_base}.\${bin_list}
  1381.       _Bin_ok=1
  1382.       while read _v_host <&5 ; do
  1383.       echo flush > /dev/null
  1384.       done
  1385.      else
  1386.       read _v_burk <&5
  1387.       read _v_burk <&5
  1388.      fi
  1389.    done
  1390.    exec 5<&-
  1391.   else
  1392.    echo "No \$_HostsDB defined."
  1393.    if [ -w \$ZHOME/lib/locale/ ]; then
  1394.     touch \$_HostsDB
  1395.    else
  1396.     echo "Not authorized to write into directory \$ZHOME/lib/locale/"
  1397.    fi
  1398.   fi
  1399.      
  1400.   if [ "\$_Bin_ok" -eq "0" ]; then
  1401.    AskOneFromList "Please select the program to execute on \$_Host" 0 bin_list \$ZHOME/bin/\${name_base}*
  1402.    if [ ! -w \$_HostsDB ]; then
  1403.     echo "Could not add this entry to \$_HostsDB"
  1404.    else
  1405.     echo "host \\\`\$_Host\' is now associated with program :"
  1406.     echo "\\\`\$bin_list\'."
  1407.     echo "(if error, edit or delete \$_HostsDB)" 
  1408.     echo \$_Host >> \$_HostsDB
  1409.     echo \$bin_list | cut -d"." -f2- >> \$_HostsDB
  1410.     echo ----- >> \$_HostsDB
  1411.    fi
  1412.   fi
  1413.  fi
  1414. }
  1415.  
  1416. ZHOME=$prefix
  1417. AXENE_LIB=\$ZHOME/lib
  1418. AXENEOFFICE_LIB=\$ZHOME/lib
  1419. XAPPLRESDIR=\$ZHOME/app-defaults
  1420. export AXENE_LIB AXENEOFFICE_LIB XAPPLRESDIR
  1421.  
  1422. TestInHostList
  1423. exec \$bin_list \$@
  1424.  
  1425. __EOT__
  1426. chmod 755 $prefix/AxeneOffice
  1427. fi
  1428.  
  1429. if [ -w "/usr/local/bin" ]; then
  1430.  SkipLine
  1431.  
  1432.  if [ $is_xcl = "yes" ]; then
  1433.   _answer=-1
  1434.   while [ "$_answer" = "-1" ]; do
  1435.    AskYesNo "Make Xclamation available from /usr/local/bin ? [y/n]:" _answer
  1436.    if [ $_answer = 1 ]; then
  1437.      if [ -f /usr/local/bin/Xclamation ]; then
  1438.       _answer=-1
  1439.       while [ "$_answer" = "-1" ]; do
  1440.        AskYesNo "\ File /usr/local/bin/Xclamation exists ! Delete it ? [y/n]:" \
  1441.         _answer
  1442.        if [ $_answer = 1 ]; then
  1443.         echo "\ Removing file /usr/local/bin/Xclamation."
  1444.     rm -f "/usr/local/bin/Xclamation"
  1445.         echo "Linking "$prefix"/Xclamation to /usr/local/bin/Xclamation."
  1446.         ln -s $prefix/Xclamation /usr/local/bin/Xclamation
  1447.        fi 
  1448.       done
  1449.      else
  1450.       echo "Linking "$prefix"/Xclamation to /usr/local/bin/Xclamation."
  1451.       ln -s $prefix/Xclamation /usr/local/bin/Xclamation
  1452.      fi
  1453.    fi 
  1454.   done
  1455.  fi
  1456.  
  1457.  if [ $is_xquad = "yes" ]; then
  1458.   _answer=-1
  1459.   while [ "$_answer" = "-1" ]; do
  1460.    AskYesNo "Make XQuad available from /usr/local/bin ? [y/n]:" _answer
  1461.    if [ $_answer = 1 ]; then
  1462.      if [ -f /usr/local/bin/XQuad ]; then
  1463.       _answer=-1
  1464.       while [ "$_answer" = "-1" ]; do
  1465.        AskYesNo "\ File /usr/local/bin/XQuad exists ! Delete it ? [y/n]:" \
  1466.         _answer
  1467.        if [ $_answer = 1 ]; then
  1468.         echo "\ Removing file /usr/local/bin/XQuad."
  1469.     rm -f "/usr/local/bin/XQuad"
  1470.         echo "Linking "$prefix"/XQuad to /usr/local/bin/XQuad."
  1471.         ln -s $prefix/XQuad /usr/local/bin/XQuad
  1472.        fi 
  1473.       done
  1474.      else
  1475.       echo "Linking "$prefix"/XQuad to /usr/local/bin/XQuad."
  1476.       ln -s $prefix/XQuad /usr/local/bin/XQuad
  1477.      fi
  1478.    fi 
  1479.   done
  1480.  fi
  1481.  
  1482.  if [ $is_xallwrite = "yes" ]; then
  1483.   _answer=-1
  1484.   while [ "$_answer" = "-1" ]; do
  1485.    AskYesNo "Make XAllWrite available from /usr/local/bin ? [y/n]:" _answer
  1486.    if [ $_answer = 1 ]; then
  1487.      if [ -f /usr/local/bin/XAllWrite ]; then
  1488.       _answer=-1
  1489.       while [ "$_answer" = "-1" ]; do
  1490.        AskYesNo "\ File /usr/local/bin/XAllWrite exists ! Delete it ? [y/n]:" \
  1491.         _answer
  1492.        if [ $_answer = 1 ]; then
  1493.         echo "\ Removing file /usr/local/bin/XAllWrite."
  1494.     rm -f "/usr/local/bin/XAllWrite"
  1495.         echo "Linking "$prefix"/XAllWrite to /usr/local/bin/XAllWrite."
  1496.         ln -s $prefix/XAllWrite /usr/local/bin/XAllWrite
  1497.        fi 
  1498.       done
  1499.      else
  1500.       echo "Linking "$prefix"/XAllWrite to /usr/local/bin/XAllWrite."
  1501.       ln -s $prefix/XAllWrite /usr/local/bin/XAllWrite
  1502.      fi
  1503.    fi 
  1504.   done
  1505.  fi
  1506.  
  1507.  if [ $is_xmayday = "yes" ]; then
  1508.   _answer=-1
  1509.   while [ "$_answer" = "-1" ]; do
  1510.    AskYesNo "Make XMayday available from /usr/local/bin ? [y/n]:" _answer
  1511.    if [ $_answer = 1 ]; then
  1512.      if [ -f /usr/local/bin/XMayday ]; then
  1513.       _answer=-1
  1514.       while [ "$_answer" = "-1" ]; do
  1515.        AskYesNo "\ File /usr/local/bin/XMayday exists ! Delete it ? [y/n]:" \
  1516.         _answer
  1517.        if [ $_answer = 1 ]; then
  1518.         echo "\ Removing file /usr/local/bin/XMayday."
  1519.     rm -f "/usr/local/bin/XMayday"
  1520.         echo "Linking "$prefix"/XMayday to /usr/local/bin/XMayday."
  1521.         ln -s $prefix/XMayday /usr/local/bin/XMayday
  1522.        fi 
  1523.       done
  1524.      else
  1525.       echo "Linking "$prefix"/XMayday to /usr/local/bin/XMayday."
  1526.       ln -s $prefix/XMayday /usr/local/bin/XMayday
  1527.      fi
  1528.    fi 
  1529.   done
  1530.  fi
  1531.  
  1532.  if [ $is_axeneoffice = "yes" ]; then
  1533.   _answer=-1
  1534.   while [ "$_answer" = "-1" ]; do
  1535.    AskYesNo "Make AxeneOffice available from /usr/local/bin ? [y/n]:" _answer
  1536.    if [ $_answer = 1 ]; then
  1537.      if [ -f /usr/local/bin/AxeneOffice ]; then
  1538.       _answer=-1
  1539.       while [ "$_answer" = "-1" ]; do
  1540.        AskYesNo "\ File /usr/local/bin/AxeneOffice exists ! Delete it ? [y/n]:" \
  1541.         _answer
  1542.        if [ $_answer = 1 ]; then
  1543.         echo "\ Removing file /usr/local/bin/AxeneOffice."
  1544.     rm -f "/usr/local/bin/AxeneOffice"
  1545.         echo "Linking "$prefix"/AxeneOffice to /usr/local/bin/AxeneOffice."
  1546.         ln -s $prefix/AxeneOffice /usr/local/bin/AxeneOffice
  1547.        fi 
  1548.       done
  1549.      else
  1550.       echo "Linking "$prefix"/AxeneOffice to /usr/local/bin/AxeneOffice."
  1551.       ln -s $prefix/AxeneOffice /usr/local/bin/AxeneOffice
  1552.      fi
  1553.    fi 
  1554.   done
  1555.  fi
  1556. fi
  1557.  
  1558. cat << __EOM__
  1559.  
  1560.  ========================
  1561.  == INSTALLATION DONE. ==
  1562.  ========================
  1563.  
  1564. __EOM__
  1565.  
  1566. if [ ! -d $prefix/lib/fonts ]; then 
  1567.  if [ $is_xcl = "yes" -o $is_xquad = "yes" -o $is_xallwrite = "yes" ]; then
  1568.   $ECHONL1"You must install the common.tar.gz package to get "$ECHONL2
  1569.   if [ $is_xcl = "yes" -a $is_xquad = "yes" -a $is_xallwrite = "yes" ]; then
  1570.    $ECHONL1"Xclamation, XQuad and XAllWrite"$ECHONL2
  1571.   elif [ $is_xcl = "yes" -a $is_xquad = "yes" ]; then
  1572.    $ECHONL1"Xclamation and XQuad"$ECHONL2
  1573.   elif [ $is_xcl = "yes" -a $is_xallwrite = "yes" ]; then
  1574.    $ECHONL1"Xclamation and XAllWrite"$ECHONL2
  1575.   elif [ $is_xquad = "yes" -a $is_xallwrite = "yes" ]; then
  1576.    $ECHONL1"XQuad and XAllWrite"$ECHONL2
  1577.   elif [ $is_xcl = "yes" ]; then
  1578.    $ECHONL1"Xclamation"$ECHONL2
  1579.   elif [ $is_xquad = "yes" ]; then
  1580.    $ECHONL1"XQuad"$ECHONL2
  1581.   elif [ $is_xallwrite = "yes" ]; then
  1582.    $ECHONL1"XAllWrite"$ECHONL2
  1583.   fi
  1584.   echo " working."
  1585.  fi
  1586. fi
  1587.  
  1588. SkipLine
  1589.