From: Alexis Laferrière Date: Wed, 14 Feb 2018 13:22:37 +0000 (-0500) Subject: lib: intro `prompt`, basic Apache 2.0 service to display a prompt X-Git-Url: http://nitlanguage.org lib: intro `prompt`, basic Apache 2.0 service to display a prompt Signed-off-by: Alexis Laferrière --- diff --git a/lib/prompt.ini b/lib/prompt.ini new file mode 100644 index 0000000..815bd3b --- /dev/null +++ b/lib/prompt.ini @@ -0,0 +1,11 @@ +[package] +name=prompt +tags=console,lib +maintainer=Alexis Laferrière +license=Apache-2.0 +[upstream] +browse=https://github.com/nitlang/nit/tree/master/lib/prompt.nit +git=https://github.com/nitlang/nit.git +git.directory=lib/prompt.nit +homepage=http://nitlanguage.org +issues=https://github.com/nitlang/nit/issues diff --git a/lib/prompt.nit b/lib/prompt.nit new file mode 100644 index 0000000..56c8c2d --- /dev/null +++ b/lib/prompt.nit @@ -0,0 +1,34 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Basic services to display a prompt +module prompt + +# Display `prompt` in the console and wait for a response +# +# Return the user response, or `null` if EOF. +# +# If `add_history`, the user response is added to the history. +fun prompt(prompt: Text, add_history: nullable Bool): nullable String +do + printn prompt + var res = stdin.read_line + if res == "" and stdin.eof then return null + return res +end + +# Add `line` to the shell history +# +# The default implementation is a noop, but other packages can refine it. +fun prompt_add_history(line: String) do end