use Data::Dump qw/dump/;
use LWP::Simple qw/mirror RC_NOT_MODIFIED/;
-use Storable;
use server;
+use once;
sub mirror_file {
my ( $url, $file ) = @_;
+
+ return unless once::first_time $file;
+
warn "mirror_file $url -> $file\n";
mirror( $url, $file )
== RC_NOT_MODIFIED
;
}
-my $once_path = '/tmp/pxelator.once';
-our $just_once = retrieve $once_path if -e $once_path;
-sub first_time {
- my $what = shift;
- return if $just_once->{$what}++;
- store $just_once, $once_path;
- return 1;
-}
-
sub iso {
my $url = shift;
- return if ! first_time($url);
-
my $name = (caller(1))[3];
$name =~ s{config::}{} || die "caller isn't package config !";
my $dir = "$server::base_dir/iso";
mkdir $dir unless -e $dir;
- my $file = $1 if $url =~ m{/([^/]+\.iso$)}i;
+ my $file = $1 if $url =~ m{/([^/]+\.iso)}i;
die "can't find iso file in $url" unless $file;
my $iso = "$dir/$file";
mkdir $mnt unless -d $mnt;
system("mount -t iso9660 | grep $name/iso || sudo mount $iso $mnt -o loop -t iso9660 -v") == 0;
+ return $iso;
}
sub files {
foreach my $file ( @files ) {
mirror_file( "$url/$file", "$path/$file" )
- if ! -e "$path/$file" || first_time( "$url/$file" );
+ if ! -e "$path/$file" || once::first_time( "$url/$file" );
}
}