summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--FedoraClient.php24
-rwxr-xr-xfedcli.php41
2 files changed, 62 insertions, 3 deletions
diff --git a/FedoraClient.php b/FedoraClient.php
index 1a33ac9..1d0ce71 100644
--- a/FedoraClient.php
+++ b/FedoraClient.php
@@ -57,7 +57,7 @@ abstract class FedoraClient {
function sendRequest($method, array $options=array()) {
$curl = curl_init();
# And join to make our url.
- $url = $this->url.urlencode($method);
+ $url = $this->url.$method;
curl_setopt($curl, CURLOPT_URL, $url);
# Boilerplate so pycurl processes cookies
curl_setopt($curl, CURLOPT_COOKIEFILE, '/dev/null');
@@ -118,11 +118,11 @@ class FedoraPkgdb extends FedoraClient {
function getBranches($refresh=false) {
$rep = ($refresh ? false : $this->cache->get(__FUNCTION__,__CLASS__));
if ($rep) {
- $this->logDebug(2,__CLASS__."::".__FUNCTION__." get from cache");
+ $this->logDebug(2,__CLASS__."::".__FUNCTION__."() get from cache");
} else {
$rep =$this->sendRequest('collections');
$this->cache->save($rep,__FUNCTION__,__CLASS__);
- $this->logDebug(2,__CLASS__."::".__FUNCTION__." save to cache");
+ $this->logDebug(2,__CLASS__."::".__FUNCTION__."() save to cache");
}
$branches = array();
@@ -134,6 +134,24 @@ class FedoraPkgdb extends FedoraClient {
return $branches;
}
+ function getPackageInfo($name, $refresh=false) {
+ $url="acls/name/$name";
+ $rep = ($refresh ? false : $this->cache->get($url,__CLASS__));
+ if ($rep) {
+ $this->logDebug(2,__CLASS__."::".__FUNCTION__."($name) get from cache");
+ } else {
+ $rep =$this->sendRequest($url);
+ $this->cache->save($rep,$url,__CLASS__);
+ $this->logDebug(2,__CLASS__."::".__FUNCTION__."($name) save to cache");
+ }
+
+ if (isset($rep['status']) && !$rep['status']) {
+ $this->logDebug(1,__CLASS__."::".__FUNCTION__."($name) ".$rep['message']);
+ return false;
+ }
+ return $rep;
+ }
+
function getBranch($name, $refresh=false) {
$branches = $this->getBranches($refresh);
diff --git a/fedcli.php b/fedcli.php
index d8439ff..81bff3d 100755
--- a/fedcli.php
+++ b/fedcli.php
@@ -30,7 +30,9 @@ function Help() {
echo "\nFedora Client Command Line usage\n\n";
echo "fdcli command options\n";
+ echo "\tbranch: branch info\n";
echo "\tbranches: list branches\n";
+ echo "\tpackage: package info\n";
echo "\tversion: class version\n";
echo "Also try fdcli command --help\n";
}
@@ -69,6 +71,44 @@ function Branch() {
print_r($branch);
}
+function Package() {
+ $config = array(
+ "package" => array('short' => 'p', 'max' => 1, 'min' => 1, 'desc' => "package name"),
+ "debug" => array('short' => 'd', 'max' => 1, 'min' => 1, 'desc' => "debug level", 'default' => "0")
+ );
+ $args =& Console_Getargs::factory($config);
+
+ if (PEAR::isError($args)) {
+ die (Console_Getargs::getHelp($config));
+ }
+ $client = new FedoraPkgdb(array('debug' => intval($args->getValue('debug'))));
+ $rep = $client->getPackageInfo($args->getValue('package'));
+
+ if (!$rep) {
+ die("Package not found\n");
+ }
+ if (isset($rep['title'])) {
+ echo $rep['title']."\n";
+ }
+ $first = true;
+ foreach ($rep['packageListings'] as $pack) {
+ if ($first) {
+ $first = false;
+ echo 'Summary: '.$pack['package']['summary']."\n";
+ echo 'Description: '.$pack['package']['description']."\n";
+ }
+ echo $pack['collection']['branchname'].": ".$pack['owner'];
+
+ $i=0;
+ foreach ($pack['people'] as $user) {
+ if (isset($user['aclOrder']['commit']['statuscode']) && $user['aclOrder']['commit']['statuscode']==3) {
+ echo ($i++ ? ", " : " (").$user['username'];
+ }
+ }
+ echo ($i ? ")\n" : "\n");
+ }
+}
+
function Version() {
$config = array(
"debug" => array('short' => 'd', 'max' => 1, 'min' => 1, 'desc' => "debug level", 'default' => "0")
@@ -88,6 +128,7 @@ $cmd = array_shift($_SERVER['argv']);
switch ($cmd) {
case 'branches': Branches(); break;
case 'branch': Branch(); break;
+ case 'package': Package(); break;
case 'version': Version(); break;
default: Help();
}