changeset 1027:0603012e99b7

Add CLI helper functions stYesNoPrompt() and stInputPrompt().
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 19 Nov 2015 17:47:17 +0200
parents 37901bdbc545
children 8f242f756b0b
files msitegen.inc.php
diffstat 1 files changed, 41 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)