How to deal with pipe delimited files with Groovy?

Viewed 27

Help please! I just had this groovy scripted dropped on me and it does not do a very good job a parsing pipe delimited files.

Here's the bit of Groovy code:

def runAnsibleAction(String line) {
    println("runAnsibleAction called with  line = ${line}")
    def (ACTION, PATTERN, INVENTORY, LIMIT, MODULE, DASH_A, EXTRA_PARAMS) = line.tokenize('|')
    build job: 'run_ansible', propagate: true, wait: true, parameters: [
        [$class: 'StringParameterValue', name: 'PATTERN', value: PATTERN],
        [$class: 'StringParameterValue', name: 'INVENTORY', value: INVENTORY],
        [$class: 'StringParameterValue', name: 'LIMIT', value: LIMIT],
        [$class: 'StringParameterValue', name: 'MODULE', value: MODULE],
        [$class: 'StringParameterValue', name: 'DASH_A', value: DASH_A],
        [$class: 'StringParameterValue', name: 'EXTRA_PARAMS', value: EXTRA_PARAMS]]
}

The bug occurs whenever someone specifies DASH_A as bash command line with pipe in it. Like netstat | grep 8080.

0 Answers
Related