svn: /pear2/sandbox/SimpleChannelServer/trunk/src/SimpleChannelServer/ CLI.php

[email protected] (Brett Bieber)
Newsgroups php.pear.cvs,php.pear.core
Message-ID <[email protected]>
saltybeagle                              Wed, 14 Jul 2010 21:44:15 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=301265

Log:
Consistently retrieve the channel and throw an exception if it cannot be found. Bug #17594 	Pyrus: SimpleChannelServer release bug.

Bug: http://pear.php.net/bugs/17594 (unknown) 
      
Changed paths:
    U   pear2/sandbox/SimpleChannelServer/trunk/src/SimpleChannelServer/CLI.php

Modified: pear2/sandbox/SimpleChannelServer/trunk/src/SimpleChannelServer/CLI.php
===================================================================
--- pear2/sandbox/SimpleChannelServer/trunk/src/SimpleChannelServer/CLI.php	2010-07-14 21:43:51 UTC (rev 301264)
+++ pear2/sandbox/SimpleChannelServer/trunk/src/SimpleChannelServer/CLI.php	2010-07-14 21:44:15 UTC (rev 301265)
@@ -25,14 +25,18 @@
      */
     public $scs;

-    public function __construct()
+    public function getSCS()
     {
-        $channel_file = getcwd() . '/channel.xml';
-        $this->dir = getcwd();
-        if (file_exists($channel_file)) {
+        if (!isset($this->scs)) {
+            $channel_file = getcwd() . '/channel.xml';
+            $this->dir = getcwd();
+            if (!file_exists($channel_file)) {
+                throw new Exception('No channel.xml file could be found! Create the channel, or change to the directory with the channel.xml.');
+            }
             $this->channel = new \PEAR2\Pyrus\Channel(new \PEAR2\Pyrus\ChannelFile($channel_file));
             $this->scs = new Main($this->channel, $this->dir);
         }
+        return $this->scs;
     }

     public function process()
@@ -76,13 +80,13 @@
         $args = array();
         $args['package'] = $_SERVER['argv'][2];
         $args['category'] = $_SERVER['argv'][3];
-        $this->scs->categorize($args['package'], $args['category']);
+        $this->getSCS()->categorize($args['package'], $args['category']);
         echo "Added  {$args['package']} to {$args['category']} \n";
     }

     function pyrusCategorize($frontend, $args)
     {
-        $this->scs->categorize($args['package'], $args['category']);
+        $this->getSCS()->categorize($args['package'], $args['category']);
         echo "Added  {$args['package']} to {$args['category']} \n";
     }

@@ -107,6 +111,7 @@
         $args['description'] = (isset($_SERVER['argv'][3]))?
                                     $_SERVER['argv'][3]:$_SERVER['argv'][2];

+        $this->getSCS();
         $categories = new Categories($this->channel);
         $categories->create($args['category'], $args['description']);
         $category = new REST\Category($this->dir . '/rest', $this->channel, 'rest/', $categories);
@@ -122,6 +127,7 @@
                                 'scs-create command first');
         }

+        $this->getSCS();
         $categories = new Categories($this->channel);
         $categories->create($args['category'], $args['description']);
         $category->savePackagesInfo($args['category']);
@@ -139,10 +145,7 @@

     function pyrusAddMaintainer($frontend, $args)
     {
-        if (!isset($this->channel)) {
-            throw new Exception('Unknown channel, run the ' .
-                                'scs-create command first');
-        }
+        $this->getSCS();
         $maintainer = new REST\Maintainer($this->dir . '/rest', $this->channel->name);
         if (isset($args['uri'])) {
             $uri = $args['uri'];
@@ -169,10 +172,7 @@

     function pyrusUpdate($frontend, $args)
     {
-        if (!isset($this->channel)) {
-            throw new Exception('Unknown channel, run the ' .
-                                'scs-create command first');
-        }
+        $this->getSCS();
         if (null === $frontend) {
             $maintainer = $args;
         } else {
@@ -216,6 +216,7 @@

     function pyrusRelease($frontend, $args)
     {
+        $this->getSCS();
         if (null !== $frontend) {
             $chan = \PEAR2\Pyrus\Config::current()->default_channel;
             \PEAR2\Pyrus\Config::current()->default_channel = $this->channel->name;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.