--- lib/PXElator/pxe.pm 2009/07/30 15:23:29 60 +++ lib/PXElator/pxe.pm 2009/07/31 22:36:06 102 @@ -15,25 +15,44 @@ warn "file $path ", -s $path; my $url = $httpd::url; -$url = "tftp://$server::ip/"; # fallback to tftp -$url = "http://$server::ip/pxelator/"; +#$url = "tftp://$server::ip/"; # fallback to tftp +#$url = "http://$server::ip/pxelator/"; -my $squash = tftpd::path('debian-live/*squashfs'); +use LWP::Simple qw/mirror RC_NOT_MODIFIED/; +foreach my $file ( 'vmlinuz1', 'initrd1.img', 'debian-live-501-i386-rescue.squashfs' ) { + my $path = "$tftpd::dir/debian-live"; + mkdir $path unless -e $path; +# next if -e "$path/$file"; + print STDERR "mirror $file "; + mirror( "http://cdimage.debian.org/cdimage/release/current-live/i386/web/$file", "$path/$file") + == RC_NOT_MODIFIED + && warn("not modified\n") + || warn("mirrored ", -s "$path/$file", "\n") + ; +} + +sub config_for_ip { + + my $ip = shift; + $ip = uc sprintf "%02x%02x%02x%02x", split /\./,$ip; + + my $config = "$tftpd::dir/pxelinux.cfg"; + mkdir $config unless -d $config; + $config .= '/' . $ip; + + my $squash = $url . tftpd::path('debian-live/*squashfs'); + write_file $config, qq{ + + default linux + label linux + kernel $url/debian-live/vmlinuz1 + append initrd=$url/debian-live/initrd1.img boot=live union=aufs noswap noprompt vga=normal fetch=$squash -my $config = "$tftpd::dir/pxelinux.cfg"; -mkdir $config unless -d $config; -$config .= '/default'; + }; -write_file $config, qq{ + warn "config $config ", -s $config if $server::debug; -default linux -label linux - kernel $url/debian-live/vmlinuz1 - append initrd=$url/debian-live/initrd1.img boot=live union=aufs noswap noprompt vga=normal fetch=$url/$squash - -}; - -warn "config $config ", -s $config; +} warn "loaded";