Changeset 44781


Ignore:
Timestamp:
2015-03-15T12:08:05+01:00 (3 years ago)
Author:
nbd
Message:

scripts/feeds: add support for installing targets

Signed-off-by: Felix Fietkau <nbd@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/scripts/feeds

    r44779 r44781  
    367367} 
    368368 
     369sub do_install_target($) { 
     370        my $target = shift; 
     371        my $path = $target->{makefile}; 
     372 
     373        if ($path) { 
     374                $path =~ s/\/Makefile$//; 
     375                my $name = $path; 
     376                $name =~ s/.*\///; 
     377                my $dest = "./target/linux/$name"; 
     378 
     379                -e $dest and do { 
     380                        warn "Path $dest already exists"; 
     381                        return 1; 
     382                }; 
     383 
     384                system("ln -sf ../../$path ./target/linux/"); 
     385        } else { 
     386                warn "Package is not valid\n"; 
     387                return 1; 
     388        } 
     389 
     390        return 0; 
     391} 
     392 
    369393sub lookup_package($$) { 
    370394        my $feed = shift; 
     
    375399                next unless $feed_cache{$feed->[1]}; 
    376400                $feed_cache{$feed->[1]}->[0]->{$package} and return $feed; 
     401        } 
     402        return; 
     403} 
     404 
     405sub lookup_target($$) { 
     406        my $feed = shift; 
     407        my $target = shift; 
     408 
     409        foreach my $feed ($feed, @feeds) { 
     410                next unless $feed->[1]; 
     411                next unless $feed_cache{$feed->[1]}; 
     412                $feed_cache{$feed->[1]}->[2]->{$target} and return $feed; 
    377413        } 
    378414        return; 
     
    388424} 
    389425 
     426sub install_target { 
     427        my $feed = shift; 
     428        my $name = shift; 
     429 
     430        $feed = $feed_cache{$feed->[1]}->[2]; 
     431        $feed or return 0; 
     432 
     433        my $target = $feed->{$name}; 
     434        $target or return 0; 
     435 
     436        warn "Installing target '$name'\n"; 
     437        return do_install_target($target); 
     438} 
     439 
    390440sub install_package { 
    391441        my $feed = shift; 
     
    393443        my $force = shift; 
    394444        my $ret = 0; 
     445 
     446        $feed = lookup_target($feed, $name); 
     447        $feed and do { 
     448                $installed_targets{$name} and return 0; 
     449                install_target($feed, $name); 
     450                return 0; 
     451        }; 
    395452 
    396453        $feed = lookup_package($feed, $name); 
Note: See TracChangeset for help on using the changeset viewer.