summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'shared/classes/gentoo_profile.php')
-rw-r--r--shared/classes/gentoo_profile.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/shared/classes/gentoo_profile.php b/shared/classes/gentoo_profile.php
index b2b970f..5657ed1 100644
--- a/shared/classes/gentoo_profile.php
+++ b/shared/classes/gentoo_profile.php
@@ -133,6 +133,36 @@ class sql_gentoo_profile extends sql_row_obj {
}
return array($n, $u, $d, $t);
}
+ public function read_pkgsets($update=false) {
+ global $S;
+ $file=realpath(BACKEND.'/../gentoo_pkgsets.csv');
+ if (!is_readable($file)) return false;
+ $file=fopen($file, 'r');
+ while (!feof($file)) {
+ $add=array();
+ $pkgs=explode("\t", rtrim(fgets($file)));
+ $name=array_shift($pkgs);
+ $obj=new sql_gentoo_pkgset();
+ if ($update) {
+ $r=$S['pdo']->query('SELECT * FROM `gentoo_pkgsets` WHERE `profile`='.$this->id.' AND `name`="'.$name.'" LIMIT 1');
+ if ($r->rowCount()) {
+ $obj->from_array($r->fetch(PDO::FETCH_ASSOC), true);
+ }
+ }
+ foreach ($pkgs as $pkg) {
+ if ($pkg=sql_gentoo_package::from_atom($pkg, $this))
+ $add[]="$pkg->bcat$pkg->lcat/$pkg->name";
+ }
+ if (count($add)) {
+ $obj->profile=$this->id;
+ $obj->name=$name;
+ $obj->packages=implode("\n", $add);
+ $obj->write();
+ } elseif (isset($obj->id)) {
+ $obj->delete();
+ }
+ }
+ }
public function &get_packages() {
global $S;
$r=$S['pdo']->query('SELECT * FROM `gentoo_packages` WHERE `profile`='.$this->id);