summaryrefslogtreecommitdiff
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');
	}
}
?>