summaryrefslogtreecommitdiff
path: root/tests/examplefiles/execline/example.exec
blob: 563bf991100c7a73270d0fd988d4db2a85731183 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/execlineb

importas -iu SPEC 1
shift
elgetpositionals

ifelse -nX {
    heredoc -d 0 ${SPEC}
    s6-grep -qE "^([[:alpha:]]+(_[[:digit:]]+)?/)*([[:alpha:]]+(_[[:digit:]]+)?):[[:digit:]]+$"
} {
    foreground {
        fdmove 1 2
        echo "Bad argument"
    }
    exit 1
}

multidefine -0d: ${SPEC} { QUEUESPEC THREADSPEC }

define -s -d/ QUEUELIST ${QUEUESPEC}
backtick -ni CMDLINE {
    forx -o0 QUEUEPAT { ${QUEUELIST} }
    importas -i Q QUEUEPAT
    ifelse -X {
        heredoc -d 0 ${Q}
        s6-grep -qE "^[[:alpha:]]+_[[:digit:]]+$"
    } {
        multidefine -0d_ ${Q} { QNAM QPRIO }
        echo -n "-q ${QNAM},${QPRIO} "
    }
    echo -n "-q ${Q} "
}

importas -ui CMDLINE CMDLINE
define -s -d" " ARGS ${CMDLINE}
${@} ${ARGS} -c ${THREADSPEC}