summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'backend/modules/gentoo_portage/base-system.php')
-rw-r--r--backend/modules/gentoo_portage/base-system.php16
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');
+}
?>