12 |
sub mirror_file { |
sub mirror_file { |
13 |
my ( $url, $file ) = @_; |
my ( $url, $file ) = @_; |
14 |
|
|
15 |
return if ! once::first_time $url; |
return unless once::first_time $file; |
16 |
|
|
17 |
warn "mirror_file $url -> $file\n"; |
warn "mirror_file $url -> $file\n"; |
18 |
mirror( $url, $file ) |
mirror( $url, $file ) |
22 |
; |
; |
23 |
} |
} |
24 |
|
|
25 |
|
=head2 iso |
26 |
|
|
27 |
|
my $iso_path = upstream::iso 'http://example.com/bootable.iso'; |
28 |
|
|
29 |
|
=cut |
30 |
|
|
31 |
sub iso { |
sub iso { |
32 |
my $url = shift; |
my $url = shift; |
33 |
|
|
53 |
mkdir $mnt unless -d $mnt; |
mkdir $mnt unless -d $mnt; |
54 |
|
|
55 |
system("mount -t iso9660 | grep $name/iso || sudo mount $iso $mnt -o loop -t iso9660 -v") == 0; |
system("mount -t iso9660 | grep $name/iso || sudo mount $iso $mnt -o loop -t iso9660 -v") == 0; |
56 |
|
return $iso; |
57 |
} |
} |
58 |
|
|
59 |
|
=head2 files |
60 |
|
|
61 |
|
my $to_dir = upstream::files qw(http://base.url.example.com/ file1 file2 file2); |
62 |
|
|
63 |
|
=cut |
64 |
|
|
65 |
sub files { |
sub files { |
66 |
my $url = shift; |
my $url = shift; |
67 |
my @files = @_; |
my @files = @_; |
82 |
mirror_file( "$url/$file", "$path/$file" ) |
mirror_file( "$url/$file", "$path/$file" ) |
83 |
if ! -e "$path/$file" || once::first_time( "$url/$file" ); |
if ! -e "$path/$file" || once::first_time( "$url/$file" ); |
84 |
} |
} |
85 |
|
|
86 |
|
return $path; |
87 |
} |
} |
88 |
|
|
89 |
1; |
1; |