# HG changeset patch # User Matti Hamalainen # Date 1447948037 -7200 # Node ID 0603012e99b7196f37782a2b39f51a6c8937eb36 # Parent 37901bdbc545037047eefde8a1cc9a8c36c7a66f Add CLI helper functions stYesNoPrompt() and stInputPrompt(). diff -r 37901bdbc545 -r 0603012e99b7 msitegen.inc.php --- a/msitegen.inc.php Sun Nov 08 23:43:54 2015 +0200 +++ b/msitegen.inc.php Thu Nov 19 17:47:17 2015 +0200 @@ -1007,6 +1007,47 @@ } +function stYesNoPrompt($msg, $default = FALSE) +{ + echo $msg." [".($default ? "Y/n" : "y/N")."]? "; + $sprompt = strtolower(trim(fgets(STDIN))); + + if ($default) + return ($sprompt == "n"); + else + return ($sprompt == "y"); +} + + +function stInputPrompt($msg, $default = FALSE, $validate = null) +{ + $valid = FALSE; + while (!$valid) + { + echo $msg."\n".($default !== FALSE ? "[".$default."]" : "")."> "; + $sprompt = trim(fgets(STDIN)); + + if ($sprompt == "") + $sprompt = ($default !== FALSE ? $default : ""); + + $valid = !is_callable($validate) || call_user_func($validate, $sprompt); + } + return $sprompt; +} + + +function stValidateNotEmpty($val) +{ + if ($val == "") + { + echo "The value can't be empty.\n"; + return FALSE; + } + else + return TRUE; +} + + function stGetDBMeta($dbh, $name) { if (($item = stDBFetchSQL($dbh, "SELECT * FROM dbmeta WHERE key=".$dbh->quote($name))) === FALSE)