function ask() { $this->asked = TRUE; do { fputs(STDOUT, $this->question); if ($this->is_optional()) { fputs(STDOUT, ' (optional'); if (self::is_answer($this->default_answer)) { fputs(STDOUT, ', default: ' . $this->default_answer); } fputs(STDOUT, '): '); } else { if (self::is_answer($this->answer)) { if (self::is_answer($this->default_answer) && $this->default_answer !== $this->answer) { fputs(STDOUT, ' (default: ' . $this->default_answer . ')'); } fputs(STDOUT, ' [' . $this->answer . ']: '); } else { if (self::is_answer($this->default_answer)) { fputs(STDOUT, ' [' . $this->default_answer . ']: '); } else { fputs(STDOUT, ': '); } } } $line = trim(fgets(STDIN, 64000)); if (!is_string($line) || empty($line)) { if ($this->is_optional()) { if (!is_string($this->default_answer)) { return $this->answer; } $ask_continue = new ConfigEntry("continue", "YesNo", "Would you like to use the default value '" . $this->default_answer . "'?", NULL, "no"); if ($ask_continue->ask() == "yes") { $line = $this->default_answer; } else { return $this->answer; } } else { if (self::is_answer($this->answer)) { $line = $this->answer; } else { if (self::is_answer($this->default_answer)) { $line = $this->default_answer; } } } } if (is_string($line)) { switch (strtolower($this->config_type)) { case 'yesno': $line = strtolower($line); break; case 'absolutepath': case 'url': if (strlen($line) > 1) { $line = rtrim($line, "/"); } break; } } if (!is_string($this->regexp) || preg_match($this->regexp, $line) != 0) { $this->answer = $line; return $line; } fputs(STDOUT, $this->error_msg . "\n"); } while (true); }
$koala_support_server_version = $match[1]; } } } if (!isset($koala_support_installed_version)) { output("No koala_support found"); $koala_support_installed_version = "0.0"; $ask_text = "Install koala_support version "; } else { output("Found koala_support {$koala_support_installed_version}"); $ask_text = "Update koala_support to version "; } output(" (newest available version is {$koala_support_server_version}).\n"); if (strcmp($koala_support_installed_version, $koala_support_server_version) < 0) { $ask_update = new ConfigEntry("update.koala_support", "YesNo", $ask_text . $koala_support_server_version . " ?", NULL, "yes"); if ($ask_update->ask() === "yes") { $package_container = steam_factory::get_object_by_name($STEAM->get_id(), "/packages"); if (!is_object($package_container)) { output("Could not find /packages on your open-sTeam server.\n"); exit(1); } $package = steam_factory::create_document($STEAM->get_id(), $koala_support_spm->get_name(), $koala_support_spm->get_content(), $koala_support_spm->get_attribute(DOC_MIME_TYPE), $package_container); if (!is_object($package)) { output("Could not upload " . $koala_support_spm->get_name() . " to your open-sTeam server.\n"); exit(1); } try { if (!$STEAM->install_package($package)) { throw new Exception("Installation failed."); } output("Installed koala_support {$koala_support_server_version} on your open-sTeam server.\n");