diff options
Diffstat (limited to 'tools/hd_grub.cgi')
| -rwxr-xr-x | tools/hd_grub.cgi | 102 | 
1 files changed, 102 insertions, 0 deletions
| diff --git a/tools/hd_grub.cgi b/tools/hd_grub.cgi new file mode 100755 index 000000000..ac55b6eaf --- /dev/null +++ b/tools/hd_grub.cgi @@ -0,0 +1,102 @@ +#!/usr/bin/perl + +use CGI ':all'; +use CGI::Carp; + +my $default_append = "ramdisk_size=128000 root=/dev/ram3"; +my $default_acpi = "acpi=ht"; +my $default_vga = "vga=788"; + +my $cgi_name = "/" . ($0 =~ m|([^/]+)$|)[0]; + +print +  header(), +  start_html(-TITLE => 'hd_grub configuration'); + +if (param()) { +    print_menu_lst(); +} else { +    print_form(); +} + +print end_html; + + +sub menu_lst { +    my ($hd, $hd_linux, $partition_number, $directory) = @_; + +    my $grub_partition_number = $partition_number - 1; + +    <<EOF; +timeout 0 +default 0 + +title Mageia Install + +root ($hd,$grub_partition_number) +kernel $directory/isolinux/alt0/vmlinuz $default_append $default_acpi $default_vga automatic=method:disk,partition:$hd_linux$partition_number,directory:$directory +initrd $directory/isolinux/alt0/all.rdz +EOF + +} + +sub print_menu_lst { +    my $directory = param('directory'); +    $directory =~ s!^/!!; +    print +      ol(li(qq(Select the text below and save it in a file "menu.lst")), +	 li(qq(Create a floppy from $directory/images/hd_grub.img (eg: <tt>dd if=hd_grub.img of=/dev/fd0</tt>))), +	 li(qq(Copy the file "menu.lst" to the floppy, overwriting the existing one)), +	 ), +      p(), +      start_form(-name => 'form', -action => $cgi_name, -method => 'get'), +      textarea(-default => menu_lst(param('hd'), param('hd_linux'), param('partition_number'), "/$directory"), +	       -rows => 15, -columns => 120, +	      ), +      end_form(), +} + +sub print_form { +    print +      p(), +      start_form(-name => 'form', -action => $cgi_name, -method => 'get'), +      ul("Please choose the partition where %s is copied.", +	 li(popup_menu(-name => "hd", -default => 'hd0',  +		       -values => [ 'hd0' .. 'hd3' ], +		       -labels => { hd0 => '1st BIOS hard drive (usually hda or sda)', +				    hd1 => '2nd BIOS hard drive', +				    hd2 => '3rd BIOS hard drive', +				    hd3 => '4th BIOS hard drive', +				  })), +	 li(popup_menu(-name => "hd_linux", -default => 'hda',  +		       -values => [ 'hda' .. 'hdd', 'sda' .. 'sdc', 'hde' .. 'hdh' ], +		       -labels => {  +				    hda => '1st IDE hard drive (hda)', +				    hdb => '2nd IDE hard drive (hdb)', +				    hdc => '3rd IDE hard drive (hdc)', +				    hdd => '4th IDE hard drive (hdd)', +				    hde => '5th IDE hard drive (hde)', +				    hdf => '6th IDE hard drive (hdf)', +				    hdg => '7th IDE hard drive (hdg)', +				    hdh => '8th IDE hard drive (hdh)', +				    sda => '1st SCSI hard drive (sda)', +				    sdb => '2nd SCSI hard drive (sdb)', +				    sdc => '3rd SCSI hard drive (sdc)', +				  })), +	 li(popup_menu(-name => "partition_number", -default => '0',  +		       -values => [ 1 .. 15 ], +		       -labels => { 1 => '1st primary partition (hda1, sda1 or ...)', +				    2 => '2nd primary partition', +				    3 => '3rd primary partition', +				    4 => '4th primary partition', +				    5 => '5th partition (hda5, sda5 or ...) (first logical partition)', +				    map { $_ => $_ . 'th partition' } 6 .. 15 +				  })), +       ), +      p(), +      ul("Please enter the directory containing the %s Distribution (relative to the partition chosen above)", +	 li(textfield(-name => 'directory', -default => '/cooker/i586', size => 40)), +	 ), +      p(submit(-name => 'Go')), +      end_form(); +} | 
