2017-06-13 4 views
0

ich eine Methode haben, die alle Tags in einem Zweig zählt:gradle: groovy Kommandozeile - grep

def method = { -> 
try { 
    def code = new ByteArrayOutputStream() 
    exec { 
     commandLine 'git', 'tag', '--list' 
     standardOutput = code 
    } 
    return code.toString().split("\n").size() 
} 
catch (ignored) { 
    return -1; 
} 
} 

Ich möchte es in der Art und Weise ändern, dass sie Tags zählt, die eine bestimmte Zeichenfolge enthalten . Leider etwas wie:

commandline 'git', 'Tag', '--list', '|', 'grep', 'Schlüsselwort'

nicht wie erwartet funktionieren. Irgendwelche Ideen warum?

Antwort

1

Frage zu beantworten why entfernen try-catch-ignore oder den Fehler-Stack-Trace drucken vor der Rückkehr -1


sobald Rohr | Teil der Shell-Funktionalität ist, die commandline wie dieses bauen:

commandLine "bash", "-c", "git tag --list | grep 'keyword'" 

als Alternative können Sie filtern auf der Ebene von groovy:

return code.toString().split("\n").findAll{i-> i~='keyword'}.size() 

hier die keyword könnte ein regulärer Ausdruck sein

Verwandte Themen