示例#1
0
文件: Task.php 项目: halfer/Meshing
 protected function initPhingProperties(Project $project)
 {
     // Apply all file properties, then all non-file properties
     $properties = new Properties();
     foreach ($this->fileProps as $key => $value) {
         $properties->put($key, $value);
     }
     foreach ($this->customProps as $key => $value) {
         $properties->put($key, $value);
     }
     // Then swap out placeholder values
     foreach ($properties->getProperties() as $key => $value) {
         $value = ProjectConfigurator::replaceProperties($project, $value, $properties->getProperties());
         $project->setProperty($key, $value);
     }
 }
示例#2
0
 /**
  * Setup/initialize Phing environment from commandline args.
  *
  * @param  array $args commandline args passed to phing shell.
  *
  * @throws ConfigurationException
  *
  * @return void
  */
 public function execute($args)
 {
     self::$definedProps = new Properties();
     $this->searchForThis = null;
     // 1) First handle any options which should always
     // Note: The order in which these are executed is important (if multiple of these options are specified)
     if (in_array('-help', $args) || in_array('-h', $args)) {
         $this->printUsage();
         return;
     }
     if (in_array('-version', $args) || in_array('-v', $args)) {
         $this->printVersion();
         return;
     }
     if (in_array('-diagnostics', $args)) {
         Diagnostics::doReport(new PrintStream(self::$out));
         return;
     }
     // 2) Next pull out stand-alone args.
     // Note: The order in which these are executed is important (if multiple of these options are specified)
     if (false !== ($key = array_search('-quiet', $args, true)) || false !== ($key = array_search('-q', $args, true))) {
         self::$msgOutputLevel = Project::MSG_WARN;
         unset($args[$key]);
     }
     if (false !== ($key = array_search('-emacs', $args, true)) || false !== ($key = array_search('-e', $args, true))) {
         $this->emacsMode = true;
         unset($args[$key]);
     }
     if (false !== ($key = array_search('-verbose', $args, true))) {
         self::$msgOutputLevel = Project::MSG_VERBOSE;
         unset($args[$key]);
     }
     if (false !== ($key = array_search('-debug', $args, true))) {
         self::$msgOutputLevel = Project::MSG_DEBUG;
         unset($args[$key]);
     }
     if (false !== ($key = array_search('-silent', $args, true)) || false !== ($key = array_search('-S', $args, true))) {
         $this->silent = true;
         unset($args[$key]);
     }
     // 3) Finally, cycle through to parse remaining args
     //
     $keys = array_keys($args);
     // Use keys and iterate to max(keys) since there may be some gaps
     $max = $keys ? max($keys) : -1;
     for ($i = 0; $i <= $max; $i++) {
         if (!array_key_exists($i, $args)) {
             // skip this argument, since it must have been removed above.
             continue;
         }
         $arg = $args[$i];
         if ($arg == "-logfile") {
             try {
                 // see: http://phing.info/trac/ticket/65
                 if (!isset($args[$i + 1])) {
                     $msg = "You must specify a log file when using the -logfile argument\n";
                     throw new ConfigurationException($msg);
                 } else {
                     $logFile = new PhingFile($args[++$i]);
                     $out = new FileOutputStream($logFile);
                     // overwrite
                     self::setOutputStream($out);
                     self::setErrorStream($out);
                     self::$isLogFileUsed = true;
                 }
             } catch (IOException $ioe) {
                 $msg = "Cannot write on the specified log file. Make sure the path exists and you have write permissions.";
                 throw new ConfigurationException($msg, $ioe);
             }
         } elseif ($arg == "-buildfile" || $arg == "-file" || $arg == "-f") {
             if (!isset($args[$i + 1])) {
                 $msg = "You must specify a buildfile when using the -buildfile argument.";
                 throw new ConfigurationException($msg);
             } else {
                 $this->buildFile = new PhingFile($args[++$i]);
             }
         } elseif ($arg == "-listener") {
             if (!isset($args[$i + 1])) {
                 $msg = "You must specify a listener class when using the -listener argument";
                 throw new ConfigurationException($msg);
             } else {
                 $this->listeners[] = $args[++$i];
             }
         } elseif (StringHelper::startsWith("-D", $arg)) {
             // Evaluating the property information //
             // Checking whether arg. is not just a switch, and next arg. does not starts with switch identifier
             if ('-D' == $arg && !StringHelper::startsWith('-', $args[$i + 1])) {
                 $name = $args[++$i];
             } else {
                 $name = substr($arg, 2);
             }
             $value = null;
             $posEq = strpos($name, "=");
             if ($posEq !== false) {
                 $value = substr($name, $posEq + 1);
                 $name = substr($name, 0, $posEq);
             } elseif ($i < count($args) - 1 && !StringHelper::startsWith("-D", $args[$i + 1])) {
                 $value = $args[++$i];
             }
             self::$definedProps->setProperty($name, $value);
         } elseif ($arg == "-logger") {
             if (!isset($args[$i + 1])) {
                 $msg = "You must specify a classname when using the -logger argument";
                 throw new ConfigurationException($msg);
             } else {
                 $this->loggerClassname = $args[++$i];
             }
         } elseif ($arg == "-inputhandler") {
             if ($this->inputHandlerClassname !== null) {
                 throw new ConfigurationException("Only one input handler class may be specified.");
             }
             if (!isset($args[$i + 1])) {
                 $msg = "You must specify a classname when using the -inputhandler argument";
                 throw new ConfigurationException($msg);
             } else {
                 $this->inputHandlerClassname = $args[++$i];
             }
         } elseif ($arg == "-propertyfile") {
             if (!isset($args[$i + 1])) {
                 $msg = "You must specify a filename when using the -propertyfile argument";
                 throw new ConfigurationException($msg);
             } else {
                 $p = new Properties();
                 $p->load(new PhingFile($args[++$i]));
                 foreach ($p->getProperties() as $prop => $value) {
                     $this->setProperty($prop, $value);
                 }
             }
         } elseif ($arg == "-longtargets") {
             self::$definedProps->setProperty('phing.showlongtargets', 1);
         } elseif ($arg == "-projecthelp" || $arg == "-targets" || $arg == "-list" || $arg == "-l" || $arg == "-p") {
             // set the flag to display the targets and quit
             $this->projectHelp = true;
         } elseif ($arg == "-find") {
             // eat up next arg if present, default to build.xml
             if ($i < count($args) - 1) {
                 $this->searchForThis = $args[++$i];
             } else {
                 $this->searchForThis = self::DEFAULT_BUILD_FILENAME;
             }
         } elseif (substr($arg, 0, 1) == "-") {
             // we don't have any more args
             self::printUsage();
             self::$err->write(PHP_EOL);
             throw new ConfigurationException("Unknown argument: " . $arg);
         } else {
             // if it's no other arg, it may be the target
             array_push($this->targets, $arg);
         }
     }
     // if buildFile was not specified on the command line,
     if ($this->buildFile === null) {
         // but -find then search for it
         if ($this->searchForThis !== null) {
             $this->buildFile = $this->_findBuildFile(self::getProperty("user.dir"), $this->searchForThis);
         } else {
             $this->buildFile = new PhingFile(self::DEFAULT_BUILD_FILENAME);
         }
     }
     try {
         // make sure buildfile (or buildfile.dist) exists
         if (!$this->buildFile->exists()) {
             $distFile = new PhingFile($this->buildFile->getAbsolutePath() . ".dist");
             if (!$distFile->exists()) {
                 throw new ConfigurationException("Buildfile: " . $this->buildFile->__toString() . " does not exist!");
             }
             $this->buildFile = $distFile;
         }
         // make sure it's not a directory
         if ($this->buildFile->isDirectory()) {
             throw new ConfigurationException("Buildfile: " . $this->buildFile->__toString() . " is a dir!");
         }
     } catch (IOException $e) {
         // something else happened, buildfile probably not readable
         throw new ConfigurationException("Buildfile: " . $this->buildFile->__toString() . " is not readable!");
     }
     $this->readyToRun = true;
 }
 protected function getFilesToExecute()
 {
     $map = new Properties();
     try {
         $map->load($this->getSqlDbMap());
     } catch (IOException $ioe) {
         throw new BuildException("Cannot open and process the sqldbmap!");
     }
     $databases = array();
     foreach ($map->getProperties() as $sqlfile => $database) {
         if (!isset($databases[$database])) {
             $databases[$database] = array();
         }
         // We want to make sure that the base schemas
         // are inserted first.
         if (strpos($sqlfile, "schema.sql") !== false) {
             // add to the beginning of the array
             array_unshift($databases[$database], $sqlfile);
         } else {
             // add to the end of the array
             array_push($databases[$database], $sqlfile);
         }
     }
     return $databases;
 }
 /**
  * Output the properties as xml output.
  *
  * @param Properties   $props the properties to save
  * @param OutputStream $os    the output stream to write to (Note this gets closed)
  *
  * @throws BuildException
  */
 protected function xmlSaveProperties(Properties $props, OutputStream $os)
 {
     $doc = new DOMDocument('1.0', 'UTF-8');
     $doc->formatOutput = true;
     $rootElement = $doc->createElement(self::$PROPERTIES);
     $properties = $props->getProperties();
     ksort($properties);
     foreach ($properties as $key => $value) {
         $propElement = $doc->createElement(self::$PROPERTY);
         $propElement->setAttribute(self::$ATTR_NAME, $key);
         $propElement->setAttribute(self::$ATTR_VALUE, $value);
         $rootElement->appendChild($propElement);
     }
     try {
         $doc->appendChild($rootElement);
         $os->write($doc->saveXML());
     } catch (IOException $ioe) {
         throw new BuildException("Unable to write XML file", $ioe);
     }
 }
示例#5
0
$properties_handle = new Properties();
foreach ($properties_handle->messages as $key => $value) {
    echo "<script type='text/javascript'>alert('{$value}');</script>";
}
foreach ($properties_handle->errors as $key => $value) {
    echo "<script type='text/javascript'>alert('Error: {$value}');</script>";
}
$html_creator = new HtmlCreator();
$status = $server_handle->getStatus($server_name);
$jar_properties = $server_handle->getProperties();
$jars = $server_handle->getJars();
$jar = $jar_properties['jar'];
$xms = $html_creator->createInput("xms_prop", $jar_properties['xms']);
$xmx = $html_creator->createInput("xmx_prop", $jar_properties['xmx']);
$jar_selector = $html_creator->createSelector($jars, $jar, 'jar_prop', True, 'width:175px');
$properties = $properties_handle->getProperties();
$gamemode = ["0" => "0 - Survival", "1" => "1 - Creative", "2" => "2 - Adventure", "3" => "3 - Spectator"];
$gamemode_selector = $html_creator->createSelector($gamemode, $properties['gamemode'], 'gamemode', False, 'width:175px');
$difficulty = ["0" => "0 - Peaceful", "1" => "1 - Easy", "2" => "2 - Normal", "3" => "3 - Hard"];
$difficulty_selector = $html_creator->createSelector($difficulty, $properties['difficulty'], 'difficulty', False, 'width:175px');
$online = ["true" => "True", "false" => "False"];
$online_selector = $html_creator->createSelector($online, $properties['online-mode'], 'online-mode', False, 'width:175px');
?>

<script type="text/javascript"> 

function stopRKey(evt) { 
  var evt = (evt) ? evt : ((event) ? event : null); 
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
}