home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / Upgrade_3.0.app / Default.upgrade / PostProcess < prev    next >
Text File  |  1992-07-17  |  6KB  |  165 lines

  1. #!/bin/csh -f
  2. #
  3. # Upgrader post-processing script for 2.X systems.
  4.  
  5. set     path = (/bin /usr/bin /etc /usr/etc /usr/ucb)
  6.  
  7. if ($#argv != 2) then
  8.     echo "Usage: PostProcess targroot sourceroot"
  9.     exit 1
  10. endif
  11.  
  12. set target = $argv[1]
  13. set source = $argv[2]
  14.  
  15. cd ${target}/etc/netinfo
  16. set databases = `ls ${target}/etc/netinfo`
  17.  
  18. foreach database ($databases)
  19.  
  20.     echo "Updating NetInfo database ${database}:"
  21.     set tag = `basename ${database} .nidb`
  22.     if ($tag == $database) then
  23.     echo "    ...but it's not a database.  Skipping."
  24.     continue
  25.     endif
  26.     if (${target}x != "/x") then
  27.     mv ${tag}.nidb XXXX.nidb
  28.     (/usr/etc/netinfod XXXX &) > /dev/null
  29.     set usetag = XXXX
  30.     else 
  31.     set usetag = $tag
  32.     endif
  33.     
  34.     # If root directory isn't writable, we probably aren't the master.
  35.     
  36.     niutil -createprop -t localhost/${usetag} / _thing _thing >& /dev/null
  37.     if ($status != 0) then
  38.         echo "    ...but this isn't the master server for it.  Skipping."
  39.     goto killdomain
  40.     else
  41.         niutil -destroyprop -t localhost/${usetag} / _thing
  42.     endif
  43.  
  44.     echo -n "    Updating user accounts..."
  45.     set users = `niutil -t -list localhost/${usetag} /users|awk '{print $2}'`
  46.     foreach user ($users)
  47.     niutil -t -list localhost/${usetag} /users/${user}/info >& /dev/null
  48.     if ($status != 0) then
  49.         niutil -t -create localhost/${usetag} /users/${user}/info
  50.         niutil -t -createprop localhost/${usetag} /users/${user}/info _writers ${user}
  51.     endif
  52.     end
  53.     echo "$#users accounts"
  54.     
  55.     echo "    Creating /locations/renderers..."
  56.     niutil -t -list localhost/${usetag} /locations/renderers >& /dev/null
  57.     if ($status != 0) then
  58.     niutil -t -create localhost/${usetag} /locations/renderers >& /dev/null
  59.     niutil -t -createprop localhost/${usetag} /locations/renderers _writeUa*' >& /dev/null
  60.     niutil -t -create localhost/${usetag} /locations/renderers/localhost >& /dev/null
  61.     niutil -t -createprop localhost/${usetag} /locations/renderers/localhost _writers '*' >& /dev/null
  62.     niutil -t -createprop localhost/${usetag} /locations/renderers/localhost note "Local  >& /dev/null Renderer"
  63.     endif
  64.  
  65.     echo "    Updating /rpcs..."
  66.     niutil -t -list localhost/${usetag} /rpcs/renderd >& /dev/null
  67.     if ($status != 0) then
  68.     niutil -t -create localhost/${usetag} /rpcs/renderd >& /dev/null
  69.     niutil -t -createprop localhost/${usetag} /rpcs/renderd number 200100002 >& /dev/null
  70.     niutil -t -destroyprop localhost/${usetag} /rpcs/rexd number >& /dev/null
  71.     niutil -t -destroy localhost/${usetag} /rpcs/rexd >& /dev/null
  72.     endif
  73.     
  74.     echo "    Removing decode alias..."
  75.     niutil -t -destroyprop localhost/${usetag} /aliases/decode members >& /dev/null
  76.     niutil -t -destroy localhost/${usetag} /aliases/decode >& /dev/null
  77.  
  78.     if ($tag == "local") then
  79.     echo "    Creating /localconfig..."
  80.     niutil -t -list localhost/${usetag} /localconfig >& /dev/null
  81.     if ($status != 0) then
  82.         niutil -t -create localhost/${usetag} /localconfig
  83.     endif
  84.     # Make sure old language and keyboard dirs aren't around.
  85.     niutil -t -destroy localhost/${usetag} /localconfig/language >& /dev/null
  86.     niutil -t -destroy localhost/${usetag} /localconfig/keyboard >& /dev/null
  87.     niutil -t -list localhost/${usetag} /screens >& /dev/null
  88.     if ($status == 0) then
  89.         set screens = `niutil -t -list localhost/${usetag} /screens | awk '{print $2}'`
  90.         foreach screen ($screens) 
  91.         foreach prop (slot unit bounds active) 
  92.             set value = `niutil -read . /screens/$screen | grep $prop | awk -F: '{print $2}'`
  93.             niutil -t -destroyprop localhost/${usetag} /screens/$screen $prop
  94.         end
  95.         niutil -t -destroyprop localhost/${usetag} /screens/$screen _writers >& /dev/null
  96.         niutil -t -destroy localhost/${usetag} /screens/$screen
  97.         end 
  98.         niutil -t -destroy localhost/${usetag} /screens
  99.     endif
  100.     if (-f ${target}/private/etc/exports && ! -f ${target}/private/etc/exports.old) then
  101.         echo "    Converting /etc/exports to NetInfo..."
  102.         ${source}/Upgrade_3.0.app/loadexports -t exports localhost/${usetag} < ${target}/private/etc/exports
  103.         mv ${target}/private/etc/exports ${target}/private/etc/exports.old
  104. cat > ${target}/private/etc/exporUb< XXX
  105. # THIS FILE IS OBSOLETE.  NFS exports are now stored in NetInfo.
  106. #
  107. # To export disks, use the NFSManager application located in /NextAdmin. 
  108. # You can also niload an old-format exports file, or add the entries
  109. # to the /exports directory of your local NetInfo domain by hand.
  110. #
  111. # Your old /etc/exports has been saved in /etc/exports.old.
  112. XXX
  113.     endif
  114.     endif
  115.     
  116.     killdomain:
  117.     
  118.     if (${target}x != "/x") then
  119.     set pid = `ps ax | grep "netinfod XXXX" | grep -v grep | awk '{print $1}'`
  120.     kill -TERM $pid
  121.     mv XXXX.nidb ${tag}.nidb
  122.     endif
  123.     
  124. end
  125.  
  126. echo -n "NetInfo changes complete. "
  127.  
  128. foreach language (French German Italian Swedish Spanish English)
  129.     /bin/rm -rf ${target}/NextLibrary/Receipts/${language}.pkg
  130. end
  131.     
  132. if (-d ${source}/Upgrade_3.0.app/Default.upgrade/Languages) then
  133.     echo "Checking sizes for languages..."
  134.     set freekbytes = `df ${target} | tail -1 | awk '{print $4}'`
  135.     set langkbytes = `du -s ${source}/Upgrade_3.0.app/Default.upgrade/Languages | awk '{print $1}'`
  136.     echo "Languages require ${langkbytes}K, and ${freekbytes}K are available."
  137.     if ($freekbytes > ($langkbytes + 1000)) then
  138.         echo "Installing languages..."
  139.     mkdirs ${target}/NextLibrary/Receipts
  140.     cd ${source}/Upgrade_3.0.app/Default.upgrade/Languages
  141.     tar cf - *.pkg | (cd ${target}/NextLibrary/Receipts; tar xf -)
  142.     else
  143.         echo "There isn't enough space to install all the languages."
  144.     echo "Checking size for English help..."
  145.     set langkbytes = `du -s ${source}/Upgrade_3.0.app/Default.upgrade/Languages/English.pkg | awk '{print $1}'`
  146.     echo "English help requires ${langkbytes}K, and ${freekbytes}K are available."
  147.     if ($freekbytes > ($langkbytes + 1000)) then
  148.         echo "Installing English help..."
  149.         mkdirs ${target}/NextLibrary/Receipts
  150.         cd ${source}/Upgrade_3.0.app/Default.upgrade/Languages
  151.         tar cf - English.pkg | (cd ${target}/NextLibrary/Receipts; tar xf -)
  152.     else
  153.         echo "There isn't enough space to install English help."
  154.     endif
  155.     endif
  156. else
  157.     echo ""
  158. endif
  159.  
  160. echo -n "Postprocessing complete at "
  161. date
  162. echo "Upgrade complete."
  163.  
  164. exit 0
  165.