Skip to content

Commit

Permalink
Add setvar command: set lineReader variable value, fixes #466
Browse files Browse the repository at this point in the history
  • Loading branch information
mattirn committed Nov 12, 2019
1 parent 440d57e commit c2a46f1
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions builtins/src/main/java/org/jline/builtins/Commands.java
Original file line number Diff line number Diff line change
Expand Up @@ -1004,4 +1004,25 @@ private static void displayValue(StringBuilder sb, Object value) {
}
}

public static void setvar(LineReader lineReader, PrintStream out, PrintStream err, String[] argv) throws HelpException {
final String[] usage = {
"setvar - set lineReader variable value",
"Usage: setvar [variable] [value]",
" -? --help Show help",
};
Options opt = Options.compile(usage).parse(argv);
if (opt.isSet("help")) {
throw new HelpException(opt.usage());
}
if (opt.args().isEmpty()) {
for (Map.Entry<String, Object> entry: lineReader.getVariables().entrySet()) {
out.println(entry.getKey() + ": " + entry.getValue());
}
} else if (opt.args().size() == 1) {
out.println(lineReader.getVariable(opt.args().get(0)));
} else {
lineReader.setVariable(opt.args().get(0), opt.args().get(1));
}
}

}

0 comments on commit c2a46f1

Please sign in to comment.