home *** CD-ROM | disk | FTP | other *** search
/ Caldera Network Desktop 1.0 / caldera-network-desktop-1.0.bin / images / ramdisk2.img / usr / lib / perl / nfs_mount < prev    next >
Text File  |  1995-10-06  |  3KB  |  160 lines

  1. # Handles configuraing NFS and setting stuff so -*-perl-*-
  2. # __mount_rhs mount the proper NFS volume
  3.  
  4. $nfsserver = "";
  5. $nfsdir = "";
  6.  
  7. sub nfs_mount {
  8.  
  9.     local ( $dont_try );
  10.  
  11.     if (! $net_up) {
  12.     &make_net_up;
  13.     if (! $net_up) {
  14.         &rhs_msgbox("Error",
  15. <<EOM
  16. >
  17. The network must be properly configured for an
  18. NFS install to work.
  19. >
  20. EOM
  21.             , 60);
  22.         return 0;
  23.     }
  24.     }
  25.  
  26.     if (! &_nfs_config) {
  27.     return 0;
  28.     }
  29.  
  30.     $dont_try = 0;
  31.     while (1) {
  32.     if (! $dont_try) {
  33.         if (&_nfs_mount_and_verify) {
  34.         return 1;
  35.         }
  36.     }
  37.     $dont_try = 0;
  38.  
  39.     if (! &rhs_menu("Choose",
  40. <<EOM
  41. >
  42. What would you like to try?
  43. >
  44. EOM
  45.             , 60, 4,
  46.             "TCP/IP", "Reconfigure networking",
  47.             "NFS", "Reconfigure NFS",
  48.             "Mount", "Just try the mount again",
  49.             "Quit", "Give up")) {
  50.         return 0;
  51.     } else {
  52.         # Do choice
  53.         if ($dialog_result eq "TCP/IP") {
  54.         &reconfig_net_up;
  55.         if (! $net_up) {
  56.             &rhs_msgbox("Error",
  57. <<EOM
  58. >
  59. The network must be properly configured for an
  60. NFS install to work.
  61. >
  62. EOM
  63.                 , 50);
  64.             $dont_try = 1;
  65.         }
  66.         } elsif ($dialog_result eq "NFS") {
  67.         if (! &_nfs_config) {
  68.             $dont_try = 1;
  69.         }
  70.         } elsif ($dialog_result eq "Mount") {
  71.         # Do nothing
  72.         } elsif ($dialog_result eq "Quit") {
  73.         return 0;
  74.         } else {
  75.         print "Bad dialog_result: $dialog_result\n";
  76.         exit 1;
  77.         }
  78.     }
  79.     }
  80. }
  81.  
  82. sub _nfs_mount_and_verify {
  83.  
  84.     $rhsmountdevice = "$nfsserver:$nfsdir";
  85.     $rhsmountdevicetype = "nfs";
  86.  
  87.     $hold_on_error = 0;
  88.     $ret = &invoke("mount -t nfs -o ro $rhsmountdevice $rh_mountpath");
  89.     $hold_on_error = 1;
  90.     if ($ret == 0) {
  91.     if (&verify_rhs_files) {
  92.         if (! $express_install) {
  93.         &rhs_msgbox("Success",
  94. <<EOM
  95. >
  96. The NFS volume was mounted successfully and the Red Hat files
  97. were found.
  98. >
  99. EOM
  100.                 , 50);
  101.         }
  102.         return 1;
  103.     } else {
  104.         &rhs_msgbox("Error",
  105. <<EOM
  106. >
  107. The NFS volume was mounted, but the Red Hat files were not found.
  108. >
  109. EOM
  110.             , 50);
  111.         &__umount_rhs;
  112.         &invoke("umount $rh_mountpath");
  113.         return 0;
  114.     }
  115.     }
  116.     &rhs_msgbox("Error",
  117. <<EOM
  118. >
  119. I was not able to mount the NFS volume $rhsmountdevice.
  120. If this looks correct, you might want to check the server
  121. and see that it is properly exported.
  122. >
  123. If you used a hostname for the NFS server you might try using
  124. an IP address, in case the name is not resolving properly.
  125. >
  126. EOM
  127.         , 60);
  128.     return 0;
  129. }
  130.  
  131. sub _nfs_config {
  132.  
  133.     if (! &rhs_inputbox("NFS",
  134. <<EOM
  135. >
  136. Enter the host name (or IP address) of your NFS server.
  137. >
  138. EOM
  139.             , 50, $nfsserver)) {
  140.     return 0;
  141.     }
  142.     $nfsserver = $dialog_result;
  143.  
  144.     if (! &rhs_inputbox("NFS",
  145. <<EOM
  146. >
  147. Enter the path to the directory you wish to mount from the NFS server.
  148. >
  149. EOM
  150.             , 50, $nfsdir)) {
  151.     return 0;
  152.     }
  153.     $nfsdir = $dialog_result;
  154.  
  155.     return 1;
  156. }
  157.  
  158. ################
  159. 1;
  160.