blob: c578ce54f3ace2285954830c28978f52f345955a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
if ($opts['basesystem'] == 'emerge') {
emerge('system', 'Emerge base system');
} else {
$r=query('SELECT * FROM `cache` WHERE `type`="stage3" AND `key`="'.$profile->get_identifier().'"');
if ($r->rowCount() == 0)
throw_exception('No stage3 in cache for '.$profile->get_identifier());
$entry=new sql_cache_entry($r->fetch(PDO::FETCH_ASSOC));
$file=CACHE."/$entry->file";
execute_command('Unpack base system', "tar -xvjpf '$file' -C '$imagedir'");
if ($opts['basesystem'] == 'user_prune' && $opts['prunepkgs']) {
emerge($opts['prunepkgs'], 'Prune base system packages', '-C');
} elseif ($opts['basesystem'] == 'auto_prune') {
throw_exception('Base system auto-prune not implemented - need package list');
$keep=explode(' ', $keep_pkgs);
$remove=array();
$r=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]);
}
emerge($remove, 'Automatically prune base system packages', '-C');
}
}
?>
|