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

  1. # -*-perl-*-
  2.  
  3. @text_step = (
  4.           "Partition",
  5.           "Select Swap",
  6.           "Init Swap",
  7.           "Configure Net",
  8.           "Select Media",
  9.  
  10.           "Select FS",
  11.           "Fstab",
  12.           "Select Series",
  13.  
  14.           "Make FS",
  15.  
  16.           "Mount FS",
  17.           "Bootstrap",
  18.           "Install Series",
  19.  
  20.           "Install Kernel",
  21.           
  22.           "Configure Mouse",
  23.           "Configure X",
  24.           "Configure Net",
  25.           "Configure Modem",
  26.           "Configure Clock",
  27.           "Configure Keyboard",
  28.           "Configure LILO",
  29.           "Add Users",
  30.           "Root Password",
  31.           "Finish",
  32.           "All Done",
  33.           "No-op"
  34.           );
  35.  
  36. @x_step = (
  37.        "Partition",
  38.        "Select Swap",
  39.        "Init Swap",
  40.        "Configure Net",
  41.        "Select Media",
  42.  
  43.        "X Install",
  44.        "All Done",
  45.        "No-op"
  46.        );
  47.  
  48. sub install_dispatcher {
  49.  
  50.     local ( $step_index, @install_step, $step, $ret );
  51.  
  52.     if ($installtype eq "text") {
  53.     require "textinst";
  54.     require "makefs";
  55.     require "fstab";
  56.     require "bootstrap";
  57.     require "keyboard";
  58.     require "clock";
  59.     require "kernel";
  60.     require "lilo";
  61.     require "modem";
  62.     require "series";
  63.     require "users";
  64.     } else {
  65.     require "xinstall";
  66.     }
  67.  
  68.     if ($installtype eq "text") {
  69.     @install_step = @text_step;
  70.     } else {
  71.     @install_step = @x_step;
  72.     }
  73.  
  74.     $step_index = 0;
  75.  
  76.     while (1) {
  77.     if ($express_install) {
  78.         $r = "Next";
  79.     } else {
  80.         if (! &rhs_menu("Red Hat Install Menu",
  81. <<EOM
  82. >
  83. Please pick an installation step.
  84. >
  85. Choosing Next each time will walk you through the installation.
  86. This is highly recommended unless you know what you are doing.
  87. >
  88. EOM
  89.                 , 75, 37,
  90.                 "Next", "Next step ($install_step[$step_index])",
  91.                 "Express", "Continue with Express Install",
  92.                 "Skip+Express", "Skip this step and continue Express Install",
  93.                 "Skip", "Skip this step and continue in order",
  94.                 "Shell", "Start a shell",
  95.                 "Reboot", "Reboot the machine",
  96.                 "-----------", "--------------------------------------",
  97.                 "Select Media", "Find the Red Hat Packages",
  98.                 "Unmount RHS", "Unmount the Red Hat CD (or NFS)",
  99.                 "Partition", "Partition your hard drives",
  100.                 "Select Swap", "Select swap partitions",
  101.                 "Init Swap", "Format and activate swap partitions",
  102.                 "Swap Off", "Deactivate your swap partitions",
  103.                 "Select FS", "Select your Linux partitions",
  104.                 "Make FS", "Format your Linux partitions",
  105.                 "X Install", "Start X Based Installation",
  106.                 "Fstab", "Set up your Linux filesystem",
  107.                 "Mount FS", "Mount your Linux filesystem",
  108.                 "Unmount FS", "Unmount your Linux filesystem",
  109.                 "Conf Net", "Configure networking",
  110.                 "Net Up", "Turn networking on",
  111.                 "Net Down", "Turn networking off",
  112.                 "Bootstrap", "Install the bootstrap system",
  113.                 "Select Series", "Select series to install",
  114.                 "Install Series", "Install selected series",
  115.                 "Configure Modem", "Set up your modem device",
  116.                 "Configure Mouse", "Set up your mouse device",
  117.                 "Configure Keyboard", "Choose your keyboard map",
  118.                 "Configure Clock", "Set up clock and timezone",
  119.                 "Configure LILO", "Configure and install LILO",
  120.                 "Select X Server", "Select an X server",
  121.                 "Configure X", "Configure your X server",
  122.                 "Add Users", "Add users (other than root)",
  123.                 "Root Password", "Set the root password",
  124.                 "Install Kernel", "Install Kernel from Boot Floppy",
  125.                 "Finish", "Write config data, etc",
  126.                 "All Done", "You are finished")) {
  127.         next;
  128.         }
  129.         $r = $dialog_result;
  130.     }
  131.  
  132.     if ($r eq "Express") {
  133.         $express_install = 1;
  134.         $r = "Next";
  135.     }
  136.  
  137.     if ($r eq "Skip") {
  138.         $step_index++;
  139.     }
  140.  
  141.     if ($r eq "Skip+Express") {
  142.         $step_index++;
  143.         $express_install = 1;
  144.         $r = "Next";
  145.     }
  146.  
  147.     if ($r eq "Next") {
  148.         $step = 1;
  149.         $r = $install_step[$step_index];
  150.         $step_index++;
  151.     } else {
  152.         $step = 0;
  153.     }
  154.  
  155.     if ($r eq "No-op") {
  156.         $express_install = 0;
  157.         $step = 0;
  158.         $step_index--;
  159.     }
  160.  
  161.     if ($r eq "Reboot") {
  162.         return 1;
  163.     } elsif ($r eq "Shell") {
  164.         &do_shell;
  165.     } elsif ($r eq "Select Media") {
  166.         $ret = &select_media;
  167.     } elsif ($r eq "Unmount RHS") {
  168.         $ret = &unmount_rhs;
  169.     } elsif ($r eq "Partition") {
  170.         $ret = &partition_disks
  171.     } elsif ($r eq "Init Swap") {
  172.         $ret = &init_swap;
  173.     } elsif ($r eq "Select Swap") {
  174.         $ret = &select_swap;
  175.     } elsif ($r eq "Swap Off") {
  176.         $ret = &swap_off;
  177.     } elsif ($r eq "Configure LILO") {
  178.         $ret = &install_lilo;
  179.     } elsif ($r eq "Make FS") {
  180.         $ret = &format_disks;
  181.     } elsif ($r eq "Select FS") {
  182.         $ret = &select_format_disks;
  183.     } elsif ($r eq "Erase FS") {
  184.         $ret = &erase_filesystems
  185.     } elsif ($r eq "Mount FS") {
  186.         $ret = &mount_filesystems
  187.     } elsif ($r eq "Unmount FS") {
  188.         $ret = &unmount_filesystems;
  189.     } elsif ($r eq "Fstab") {
  190.         $ret = &init_filesystems;
  191.     } elsif ($r eq "X Install") {
  192.         # The X install can drop out to a text based install
  193.         $ret = &xinstall;
  194.         if (! $ret) {
  195.         $ret = 1;
  196.         # This should be the Select FS step
  197.         $step_index = 5;
  198.         @install_step = @text_step;
  199.         $installtype = "text";
  200.  
  201.         # Make sure we have everything
  202.         require "textinst";
  203.         require "makefs";
  204.         require "fstab";
  205.         require "bootstrap";
  206.         require "keyboard";
  207.         require "clock";
  208.         require "kernel";
  209.         require "lilo";
  210.         require "modem";
  211.         require "series";
  212.         require "users";
  213.         }
  214.     } elsif ($r eq "Bootstrap") {
  215.         $ret = &install_bootstrap;
  216.     } elsif ($r eq "Select Series") {
  217.         $ret = &series_select;
  218.     } elsif ($r eq "Install Series") {
  219.         $ret = &series_install;
  220.     } elsif ($r eq "Install Kernel") {
  221.         $ret = &install_kernel;
  222.     } elsif ($r eq "Conf Net") {
  223.         $ret = &config_net;
  224.     } elsif ($r eq "Configure Net") {
  225.         $ret = &configure_network;
  226.     } elsif ($r eq "Configure Modem") {
  227.         $ret = &configure_modem;
  228.     } elsif ($r eq "Configure Mouse") {
  229.         $ret = &configure_mouse;
  230.     } elsif ($r eq "Configure Keyboard") {
  231.         $ret = &configure_keyboard;
  232.     } elsif ($r eq "Configure Clock") {
  233.         $ret = &configure_clock;
  234.     } elsif ($r eq "Add Users") {
  235.         $ret = &add_users;
  236.     } elsif ($r eq "Root Password") {
  237.         $ret = &root_password;
  238.     } elsif ($r eq "Select X Server") {
  239.         $ret = &select_x_server;
  240.     } elsif ($r eq "Install X Server") {
  241.         $ret = &install_x;
  242.     } elsif ($r eq "Configure X") {
  243.         $ret = &config_x;
  244.     } elsif ($r eq "Net Up") {
  245.         $ret = &bring_net_up;
  246.     } elsif ($r eq "Net Down") {
  247.         $ret = &bring_net_down;
  248.     } elsif ($r eq "Erase") {
  249.         $ret = &erase_filesystems;
  250.     } elsif ($r eq "Hack") {
  251.         $ret = &hack_state;
  252.     } elsif ($r eq "Finish") {
  253.         $ret = &finish;
  254.     } elsif ($r eq "All Done") {
  255.         $ret = &all_done;
  256.         if ($ret) {
  257.         return 1;
  258.         }
  259.         $express_install = 0;
  260.     } elsif ($r eq "No-op") {
  261.         $ret = 1;
  262.     }
  263.  
  264.     if ($step) {
  265.         if (! $ret) {
  266.         # stop express install
  267.         if ($express_install) {
  268.             $express_install = 0;
  269.             &rhs_msgbox("Error",
  270. <<EOM
  271. >
  272. Some sort of error occured, so we have dropped you
  273. out of the Express Install.  You can rejoin the
  274. Express Install by selecting Express from the menu.
  275. >
  276. EOM
  277.                 , 65);
  278.         }
  279.         $step_index--;
  280.         }
  281.     }
  282.     }
  283. }
  284.  
  285. sub do_shell {
  286.     &rhs_msgbox("Shell",
  287. <<EOM
  288. >
  289. There is a shell running on VC2.  Press Alt-F2 to
  290. switch to VC2.  You can press Alt-F1 to get back to
  291. the install program.
  292. >
  293. EOM
  294.         , 65);
  295. }
  296.  
  297. sub all_done {
  298.     return &rhs_yesno("Installation Completed",
  299. <<EOM
  300. >
  301. Your installation is finished.
  302. >
  303. You may reboot now, or select reboot from the main menu.
  304. >
  305. Reboot now?
  306. >
  307. EOM
  308.               , 65);
  309. }
  310.  
  311. ##
  312. 1;
  313.