Changeset 51

Show
Ignore:
Timestamp:
10/09/06 14:42:20 (7 years ago)
Author:
max
Message:

Centralized online file retrieval code into fetch_file()

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • shepherd

    r42 r51  
    11501150    printf "\nChecking for updates:\n\n"; 
    11511151 
    1152     my $data; 
    1153     my $sites = ""; 
    1154     $sites = "$mirror_site," if ($mirror_site); 
    1155     $sites .= $HOME; 
    1156  
    1157     foreach my $site (split(/,/,$sites)) { 
    1158         my $url = $site . "/status"; 
    1159         print "Fetching status file: $url.\n"; 
    1160         $data = LWP::Simple::get($url); 
    1161         last if $data; 
    1162  
    1163         print "Failed to retrieve status file from $url.\n"; 
    1164     } 
    1165     return if (!$data); 
     1152    my $data = fetch_file("status"); 
     1153 
     1154    return unless ($data); 
    11661155 
    11671156    my %clist = %$components; 
     
    12331222    print "Downloading $proggy v$latestversion.\n"; 
    12341223 
    1235     my $sites = ""; 
    1236     $sites = "$mirror_site," if ($mirror_site); 
    1237     $sites .= $HOME; 
    1238  
    12391224    my $rdir = ""; 
    12401225    my $ldir = $CWD; 
     
    12521237 
    12531238    my $newfile = "$ldir/$proggy-$latestversion"; 
    1254     my $rc; 
    1255  
    1256     foreach my $site (split(/,/,$sites)) { 
    1257         printf "Fetching $site/$rdir/$proggy v$latestversion.\n"; 
    1258         $rc = LWP::Simple::getstore("$site/$rdir/$proggy", $newfile); 
    1259         last if (is_success($rc)); 
    1260  
    1261         print "Failed to retrieve $site/$rdir/$proggy.\n"; 
    1262     } 
    1263     return if (!is_success($rc)); 
    1264  
     1239    my $rfile = "$rdir/$proggy"; 
     1240 
     1241    return unless (fetch_file($rfile, $newfile)); 
     1242     
    12651243    # Make it executable 
    12661244    system('chmod u+x ' . $newfile); 
     
    12921270 
    12931271    $made_changes = 1; 
     1272} 
     1273 
     1274sub fetch_file 
     1275{ 
     1276    my ($fn, $store) = @_; 
     1277 
     1278    my $sites = ""; 
     1279    $sites = "$mirror_site," if ($mirror_site); 
     1280    $sites .= $HOME; 
     1281 
     1282    my $ret; 
     1283    foreach my $site (split(/,/,$sites))  
     1284    { 
     1285        printf "Fetching $site/$fn.\n"; 
     1286        if ($store) 
     1287        { 
     1288            $ret = LWP::Simple::getstore("$site/$fn", $store); 
     1289            return 1 if (is_success($ret)); 
     1290        } 
     1291        else 
     1292        { 
     1293            $ret = LWP::Simple::get("$site/$fn"); 
     1294            return $ret if ($ret); 
     1295        } 
     1296        print "Failed to retrieve $site/$fn.\n"; 
     1297    } 
     1298    return undef; 
    12941299} 
    12951300