diff options
Diffstat (limited to 'backend/modules/gentoo_portage/base-system.php')
-rw-r--r-- | backend/modules/gentoo_portage/base-system.php | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/backend/modules/gentoo_portage/base-system.php b/backend/modules/gentoo_portage/base-system.php index df1eb26..35dc91e 100644 --- a/backend/modules/gentoo_portage/base-system.php +++ b/backend/modules/gentoo_portage/base-system.php @@ -2,4 +2,20 @@ $file=CACHE.'/stage3/'.$profile->stage3; $opt='-xv'.(substr($file, -3) == 'bz2'?'j':'z').'f'; execute_command('Unpack base system', "tar $opt '$file' -C '$I'"); +if ($opts['basesystem'] == 'manual' && $opts['prunepkgs']) { + portage_install($opts['prunepkgs'], 'Prune base system packages', '-C'); +} elseif ($opts['basesystem'] == 'autoprune') { + throw_exception('Base system autoprune not implemented - need package list'); + $keep=explode(' ', $keep_pkgs); + $remove=array(); + $r=$S['pdo']->query('SELECT * FROM `gentoo_basepkgs` WHERE `profile`='.$profile->id); + while ($pkg=$r->fetch(PDO::FETCH_ASSOC)) { + $pkg=$pkg['pkg']; + if (($i=array_search($pkg, $keep)) === false) + $remove[]=$pkg; + else + unset($keep[$i]); + } + portage_install($remove, 'Automatically prune base system packages', '-C'); +} ?> |