Mercurial > hg > Lemuriformes
annotate lemuriformes/waiter.sh @ 17:4793f99b73e0
[lemuriformes] utility functions
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 10 Dec 2017 17:42:52 -0800 |
parents | |
children |
rev | line source |
---|---|
17
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
1 #!/bin/bash |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
3 # parallelize and wait for a set of jobs; |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
4 # it's MapReduce for `bash`! |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
5 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
6 FAIL=0 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
7 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
8 # See http://jeremy.zawodny.com/blog/archives/010717.html |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
9 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
10 {{for command in commands}} |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
11 {{command}} & |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
12 {{endfor}} |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
13 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
14 # wait for processes |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
15 for job in `jobs -p` |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
16 do |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
17 echo ${job} |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
18 wait ${job} || let "FAIL+=1" |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
19 done |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
20 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
21 if [ "${FAIL}" == "0" ] |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
22 then |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
23 exit 0 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
24 fi |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
25 |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
26 echo "${FAIL} failing job(s)" |
4793f99b73e0
[lemuriformes] utility functions
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
27 exit 1 |