return iso path
[pxelator] / lib / PXElator / upstream.pm
index 23d5310..3c39b0c 100644 (file)
@@ -11,6 +11,9 @@ 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
@@ -30,12 +33,12 @@ sub iso {
        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";
 
-       mirror_file( $url, $iso ) if once::first_time $url;
+       mirror_file( $url, $iso );
 
        $file =~ s{\.iso$}{}i;
        my $mnt = "$server::base_dir/tftp/$name";
@@ -44,6 +47,7 @@ sub iso {
        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 {