setPackage($category, $package); } public function __get($var) { return $this->$var; } public function __toString() { return $this->name; } private function setPackage($category, $package) { parent::setCategory($category); $package = basename($package); $dir = $this->dir."/".$package; if(is_dir($dir)) { $this->name = $package; $scandir = scandir($dir); $arr = preg_grep('/\.ebuild$/', $scandir); $arr = preg_replace("/\.ebuild$/", "", $arr); sort($arr); $this->arr_ebuilds = $arr; } if(file_exists("$dir/ChangeLog")) { $this->changelog_filename = "$dir/ChangeLog"; $str = file_get_contents($this->changelog_filename); $str = trim($str); $this->changelog = $str; $this->changelog_mtime = filemtime($this->changelog_filename); } if(file_exists("$dir/metadata.xml")) { $this->metadata_filename = "$dir/metadata.xml"; $this->metadata_xml = simplexml_load_file($this->metadata_filename); $this->metadata_mtime = filemtime($this->metadata_filename); } $this->portage_mtime = filemtime($dir); } public function getCategory() { return parent::getName(); } public function getEbuilds() { return $this->arr_ebuilds; } public function getHerds() { $arr = array(); if(!$this->metadata_filename) return $arr; if(!$this->metadata_xml) $this->metadata_xml = simplexml_load_file($this->metadata_filename); if($this->metadata_xml->herd) { foreach($this->metadata_xml->herd as $name) { $arr[] = (string)$name; } } sort($arr); return $arr; } public function getMaintainers() { $arr = array(); if(!$this->metadata_filename) return $arr; if(!$this->metadata_xml) $this->metadata_xml = simplexml_load_file($this->metadata_filename); if($this->metadata_xml->maintainer) { $x = 0; foreach($this->metadata_xml->maintainer as $maintainer) { if($maintainer->name) $arr[$x]['name'] = (string)$maintainer->name; if($maintainer->email) $arr[$x]['email'] = (string)$maintainer->email; $x++; } } return $arr; } public function getUseFlags() { $arr = array(); if(!$this->metadata_filename) return $arr; if(!$this->metadata_xml) $this->metadata_xml = simplexml_load_file($this->metadata_filename); // Getting attributes is always a pain // http://us.php.net/manual/en/function.simplexml-element-attributes.php if($this->metadata_xml->use) { foreach($this->metadata_xml->use->flag as $flag) { foreach($flag->attributes() as $key => $name) { if($key == 'name') { $name = (string)$name; $arr[$name] = (string)$flag; } } } } ksort($arr); return $arr; } } ?>