Exemple #1
0
 /**
  * Entry point allowing for more options from other front ends.
  *
  * This method encapsulates the complete build lifecycle.
  *
  * @param array $args The commandline args passed to phing shell script.
  * @param array $additionalUserProperties   Any additional properties to be passed to Phing (alternative front-end might implement this).
  *                                          These additional properties will be available using the getDefinedProperty() method and will
  *                                          be added to the project's "user" properties
  * @see execute()
  * @see runBuild()
  * @throws Exception - if there is an error during build
  */
 public static function start($args, array $additionalUserProperties = null)
 {
     try {
         $m = new Phing();
         $m->execute($args);
     } catch (Exception $exc) {
         self::handleLogfile();
         throw $exc;
     }
     if ($additionalUserProperties !== null) {
         foreach ($additionalUserProperties as $key => $value) {
             $m->setDefinedProperty($key, $value);
         }
     }
     try {
         $m->runBuild();
     } catch (Exception $exc) {
         self::handleLogfile();
         throw $exc;
     }
     // everything fine, shutdown
     self::handleLogfile();
 }
Exemple #2
0
 /**
  * 
  * @param string $taskName
  */
 public function runPhing($taskName)
 {
     // Copy Files
     $this->mySchemaBuilder->loadXmlFiles();
     // Create build.properties file
     $this->createBuildPropertiesFile($this->tmpDir . '/build.properties');
     // Create buildtime-conf file
     $this->createBuildTimeConfFile($this->tmpDir . '/buildtime-conf.xml');
     //
     $args = array();
     $args = $this->getPhingArguments();
     $args[] = $taskName;
     // Enable output buffering
     \Phing::setOutputStream(new \OutputStream(fopen('php://output', 'w')));
     \Phing::setErrorStream(new \OutputStream(fopen('php://output', 'w')));
     \Phing::startup();
     \Phing::setProperty('phing.home', getenv('PHING_HOME'));
     //
     $myPhing = new \Phing();
     //$returnStatus = true;
     $myPhing->execute($args);
     $myPhing->runBuild();
     /*$this->buffer = ob_get_contents();
       // Guess errors
       if (strstr($this->buffer, 'failed. Aborting.') ||
           strstr($this->buffer, 'Failed to execute') ||
           strstr($this->buffer, 'failed for the following reason:')) {
       }*/
 }
Exemple #3
0
 /** 
  * Entry point allowing for more options from other front ends.
  * 
  * This method encapsulates the complete build lifecycle.
  * 
  * @param array &$args The commandline args passed to phing shell script.
  * @param array $additionalUserProperties   Any additional properties to be passed to Phing (alternative front-end might implement this).
  *                                          These additional properties will be available using the getDefinedProperty() method and will
  *                                          be added to the project's "user" properties.
  * @return void
  * @see execute()
  * @see runBuild()
  */
 public static function start(&$args, $additionalUserProperties = null)
 {
     try {
         $m = new Phing();
         $m->execute($args);
     } catch (Exception $exc) {
         $m->printMessage($exc);
         self::halt(-1);
         // Parameter error
     }
     if ($additionalUserProperties !== null) {
         $keys = $m->additionalUserProperties->keys();
         while (count($keys)) {
             $key = array_shift($keys);
             $property = $m->additionalUserProperties->getProperty($key);
             $m->setDefinedProperty($key, $property);
         }
     }
     try {
         $m->runBuild();
     } catch (Exception $exc) {
         self::halt(1);
         // Errors occured
     }
     // everything fine, shutdown
     self::halt(0);
     // no errors, everything is cake
 }
 /**
  * Entry point allowing for more options from other front ends.
  *
  * This method encapsulates the complete build lifecycle.
  *
  * @param  array     $args                     The commandline args passed to phing shell script.
  * @param  array     $additionalUserProperties Any additional properties to be passed to Phing (alternative front-end might implement this).
  *                                             These additional properties will be available using the getDefinedProperty() method and will
  *                                             be added to the project's "user" properties
  * @see execute()
  * @see runBuild()
  * @throws Exception - if there is an error during build
  */
 public static function start($args, array $additionalUserProperties = null)
 {
     try {
         $m = new Phing();
         $m->execute($args);
     } catch (Exception $exc) {
         self::handleLogfile();
         self::printMessage($exc);
         self::statusExit(1);
         return;
     }
     if ($additionalUserProperties !== null) {
         foreach ($additionalUserProperties as $key => $value) {
             $m->setDefinedProperty($key, $value);
         }
     }
     // expect the worst
     $exitCode = 1;
     try {
         try {
             $m->runBuild();
             $exitCode = 0;
         } catch (ExitStatusException $ese) {
             $exitCode = $ese->getCode();
             if ($exitCode != 0) {
                 self::handleLogfile();
                 throw $ese;
             }
         }
     } catch (BuildException $exc) {
         // avoid printing output twice: self::printMessage($exc);
     } catch (Exception $exc) {
         echo $exc->getTraceAsString();
         self::printMessage($exc);
     }
     // everything fine, shutdown
     self::handleLogfile();
     self::statusExit($exitCode);
 }