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'
version = '0.1.2'
version = '0.1.3'
repositories {
mavenLocal()

View File

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