summaryrefslogtreecommitdiffstats
path: root/drakpxelinux.pl
diff options
context:
space:
mode:
authorAntoine Ginies <aginies@mandriva.com>2004-11-12 10:37:21 +0000
committerAntoine Ginies <aginies@mandriva.com>2004-11-12 10:37:21 +0000
commit456162b3e36a08eca88c64064afb02eb5cd0a7e5 (patch)
tree2bb753ecfea50682d30e0ccb2867e3ea9fbb4147 /drakpxelinux.pl
parent30d27b25dec9d1f915a103146ad0cbe047ae8542 (diff)
downloaddrakpxelinux-456162b3e36a08eca88c64064afb02eb5cd0a7e5.tar
drakpxelinux-456162b3e36a08eca88c64064afb02eb5cd0a7e5.tar.gz
drakpxelinux-456162b3e36a08eca88c64064afb02eb5cd0a7e5.tar.bz2
drakpxelinux-456162b3e36a08eca88c64064afb02eb5cd0a7e5.tar.xz
drakpxelinux-456162b3e36a08eca88c64064afb02eb5cd0a7e5.zip
fix custom options and dhcp/ip addr
Diffstat (limited to 'drakpxelinux.pl')
-rw-r--r--drakpxelinux.pl20
1 files changed, 11 insertions, 9 deletions
diff --git a/drakpxelinux.pl b/drakpxelinux.pl
index 85ffc70..86c0b6d 100644
--- a/drakpxelinux.pl
+++ b/drakpxelinux.pl
@@ -22,7 +22,7 @@
# thx R1 for test and some debug
# cvs.mandrakesoft.com module: /soft/drakpxelinux
-my $version = "1.0.1";
+my $version = "1.0.2";
use lib qw(/usr/lib/libDrakX);
use standalone;
@@ -157,18 +157,19 @@ sub get_items() {
if (any { /^label/ } cat_($conf)) {
if (/^label/) { ($label) = /^label\s(.*)/ }
if (/KERNEL/) { ($kernel) = /KERNEL\s(.*)/ }
- my ($initrd, $automatic, $interface, $network, $server, $directory, $ramdisk, $vga, $display) = m!\s*APPEND\sinitrd=(.*?rdz)\s\bautomatic=method\b:(nfs|http),interface:(eth0|eth1|eth2),network:(dhcp|10.0.1.33),server:(.*?),directory:(.*?)\s\bramdisk_size\b=(.*?)\sroot=/dev/ram3\srw\svga=(.*?)\sdisplay=(.*?)\s!;
+ my ($initrd, $automatic, $interface, $network, $server, $directory, $ramdisk, $vga, $devram, $display, $opts) = m!\s*APPEND\sinitrd=(.*?rdz)\s\bautomatic=method\b:(nfs|http),interface:(eth0|eth1|eth2),network:(dhcp|\d+\.\d+\.\d+\.\d+),server:(.*?),directory:(.*?)\s\bramdisk_size\b=(.*?)\sroot=(/dev/ram3\srw)\svga=(.*?)\sdisplay=(.*?)\s(.*)!;
# in case of parameter not on this order (previous pxe default file)
+ $devram or my ($devra) = m!root=(/dev/ram3\srw)!;
$initrd or my ($init) = m!\s*APPEND\s\binitrd\b=(.*?)\s!;
$ramdisk or my ($ramdis) = m!\bramdisk_size\b=(\d+)\s!;
$automatic or my ($automati) = m!\bautomatic\b=method:(nfs|http)!;
$vga or my ($vg) = m!\bvga\b=(.*?)\s!;
$display or my ($displa) = m!\bdisplay\b=(.*?)\s!;
$interface or my ($interfac) = m!\binterface\b:(eth0|eth1|eth2)!;
- $network or my ($networ) = m!\bnetwork\b:(dhcp|10.0.1.33)!;
+ $network or my ($networ) = m!\bnetwork\b:(dhcp|\d+\.\d+\.\d+\.\d+)!;
$server or my ($serve) = m!\bserver\b:(.*?),!;
$directory or my ($director) = m!\bdirectory\b:(.*?)\s!;
- my $initall; my $ramdiskall; my $autoall; my $vgaall; my $displayall; my $interfaceall; my $networkall; my $serverall; my $directoryall;
+ my $optsall; my $initall; my $ramdiskall; my $autoall; my $vgaall; my $displayall; my $interfaceall; my $networkall; my $serverall; my $directoryall; my $devramall;
if ($initrd) { $initall = $initrd } else { $initall = $init }
if ($ramdisk) { $ramdiskall = $ramdisk } else { $ramdiskall = $ramdis }
if ($automatic) { $autoall = $automatic } else { $autoall = $automati }
@@ -178,10 +179,11 @@ sub get_items() {
if ($network) { $networkall = $network } else { $networkall = $networ }
if ($server) { $serverall = $server } else { $serverall = $serve }
if ($directory) { $directoryall = $directory } else { $directoryall = $director }
+ if ($devram) { $devramall = $devram } else { $devramall = $devra }
my ($allopt) = m!\s*APPEND\s(.*)!;
my ($autocomp) = m!\bautomatic\b=(.*?)\s!;
- my ($devram) = m!root=(/dev/ram3\srw)!;
- $allopt and my $optionsall = join(' ', grep { ! /root=$devram/ && ! /initrd=$initall/ && !/display=$displayall/ && ! /ramdisk_size=$ramdiskall/ && ! /automatic=$autocomp/ && !/vga=$vgaall/ } split(' ', $allopt));
+ my $optionsall = join(' ', grep { ! /root=$devramall/ && ! /initrd=$initall/ && !/display=$displayall/ && ! /ramdisk_size=$ramdiskall/ && ! /automatic=$autocomp/ && !/vga=$vgaall/ } split(' ', $allopt));
+ if ($opts) { $optsall = $opts } else { $optsall = $optionsall }
if ($label && $kernel && $initall) {
my $information = get_information($label);
# my $vgares = $list_vga_res{$vgaall};
@@ -199,7 +201,7 @@ sub get_items() {
ramdisk => $ramdiskall,
vga => $vgaall,
display => $displayall,
- option => $optionsall,
+ option => $optsall,
},;
}
}
@@ -270,13 +272,13 @@ EOF
append_to_file($conf, "
label $a->{label}
KERNEL $a->{kernel}
- APPEND initrd=$a->{initrd} automatic=method:$a->{automatic},interface:$a->{interface},network:$a->{network},server:$a->{server},directory:$a->{directory} ramdisk_size=$a->{ramdisk} root=/dev/ram3 rw vga=$a->{vga}
+ APPEND initrd=$a->{initrd} automatic=method:$a->{automatic},interface:$a->{interface},network:$a->{network},server:$a->{server},directory:$a->{directory} ramdisk_size=$a->{ramdisk} vga=$a->{vga} $a->{option}
");
} elsif ($a->{interface} && $a->{display}) {
append_to_file($conf, "
label $a->{label}
KERNEL $a->{kernel}
- APPEND initrd=$a->{initrd} automatic=method:$a->{automatic},interface:$a->{interface},network:$a->{network},server:$a->{server},directory:$a->{directory} ramdisk_size=$a->{ramdisk} root=/dev/ram3 rw vga=$a->{vga} display=$a->{display}
+ APPEND initrd=$a->{initrd} automatic=method:$a->{automatic},interface:$a->{interface},network:$a->{network},server:$a->{server},directory:$a->{directory} ramdisk_size=$a->{ramdisk} vga=$a->{vga} display=$a->{display} $a->{option}
");
# case of .img image
} else {