Allow multiple commands on one line using and or ;.

This commit is contained in:
Jonathan Bernard 2017-01-16 04:22:11 -06:00
parent 92d384573e
commit a6371574a7
2 changed files with 11 additions and 5 deletions

View File

@ -12,7 +12,7 @@ allprojects {
} }
group = 'com.jdbernard' group = 'com.jdbernard'
version = '0.1.2' version = '0.1.3'
repositories { repositories {
mavenLocal() mavenLocal()

View File

@ -28,7 +28,7 @@ import static com.jdbernard.wdiwtlt.cli.CliErr.*
public class CommandLineInterface { public class CommandLineInterface {
public static final VERSION = "0.1.2" public static final VERSION = "0.1.3"
public static final def DOC = """\ public static final def DOC = """\
wdiwtlt v$VERSION wdiwtlt v$VERSION
@ -97,14 +97,14 @@ Configuration:
private String titleStyle, normalStyle, statusStyle, promptStyle, private String titleStyle, normalStyle, statusStyle, promptStyle,
artistStyle, albumStyle, fileStyle, errorStyle, playlistStyle, artistStyle, albumStyle, fileStyle, errorStyle, playlistStyle,
cmdStyle, optStyle cmdStyle, optStyle
private String eraseToEnd = new ANSI().eraseLine(Erase.ToEnd).toString()
private String clearLine = new ANSI().eraseLine(Erase.All).toString() private String clearLine = new ANSI().eraseLine(Erase.All).toString()
private String afterInput = private String afterInput =
new ANSI().eraseLine(Erase.All).scrollUp().cursorUp().toString() new ANSI().eraseLine(Erase.All).scrollUp().cursorUp().toString()
private String beforeLeader = private String beforeLeader =
new ANSI().saveCursor().cursorPrevLine(3).toString() new ANSI().saveCursor().cursorPrevLine(3).toString()
private String afterLeader = private String afterLeader =
new ANSI().restoreCursor().eraseLine(Erase.ToEnd).toString() new ANSI().restoreCursor().toString()
private String eraseLeader = private String eraseLeader =
new ANSI().eraseLine(Erase.All).cursorPrevLine().eraseLine(Erase.All) new ANSI().eraseLine(Erase.All).cursorPrevLine().eraseLine(Erase.All)
.cursorPrevLine().eraseLine(Erase.All) .cursorPrevLine().eraseLine(Erase.All)
@ -391,7 +391,8 @@ Configuration:
printLongMessage(errorStyle + errMsg + normalStyle) } printLongMessage(errorStyle + errMsg + normalStyle) }
else { else {
status.text = errorStyle + errMsg + normalStyle status.text = errorStyle + errMsg + normalStyle
dismissMsgDate = new Date(new Date().time + msgTimeout) } } } dismissMsgDate = new Date(new Date().time + msgTimeout) } }
outStream.print eraseToEnd }
else { else {
drawLeader() drawLeader()
if (curMediaFile && if (curMediaFile &&
@ -405,8 +406,13 @@ Configuration:
Thread.sleep(250) } } } Thread.sleep(250) } } }
private def processInput(String line) { private def processInput(String line) {
line = line.trim()
logger.debug("line: $line") logger.debug("line: $line")
if (line.indexOf(' and ') > 0 || line.indexOf(';')> 0) {
String[] cmds = line.split(/ and |;/)
return cmds.collect(this.&processInput) }
String[] parts = line.split(' ', 2) String[] parts = line.split(' ', 2)
String command = parts[0]?.toLowerCase() String command = parts[0]?.toLowerCase()
String rest = parts.size() == 2 ? parts[1]?.trim() : null String rest = parts.size() == 2 ? parts[1]?.trim() : null