/** * 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(); }
/** * * @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:')) { }*/ }
/** * 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); }