Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at netboot-syslinux-multiplatform 78 lines 1.7 kB view raw
1#! @shell@ 2# shellcheck shell=bash 3 4set -eu -o pipefail +o posix 5shopt -s nullglob 6 7if (( "${NIX_DEBUG:-0}" >= 7 )); then 8 set -x 9fi 10 11source @signingUtils@ 12 13extraAfter=() 14extraBefore=() 15params=("$@") 16 17output= 18inputs=() 19 20restAreFiles= 21prev= 22for p in \ 23 ${extraBefore+"${extraBefore[@]}"} \ 24 ${params+"${params[@]}"} \ 25 ${extraAfter+"${extraAfter[@]}"} 26do 27 if [ "$restAreFiles" ]; then 28 inputs+=("$p") 29 else 30 case "$prev" in 31 -s|-R|-d|-arch) 32 # Unrelated arguments with values 33 ;; 34 -o) 35 # Explicit output 36 output="$p" 37 ;; 38 *) 39 # Any other orgument either takes no value, or is a file. 40 if [[ "$p" != -* ]]; then 41 inputs+=("$p") 42 fi 43 ;; 44 esac 45 46 if [ "$p" == - ]; then 47 restAreFiles=1 48 fi 49 fi 50 51 prev="$p" 52done 53 54# Optionally print debug info. 55if (( "${NIX_DEBUG:-0}" >= 1 )); then 56 # Old bash workaround, see above. 57 echo "extra flags before to @prog@:" >&2 58 printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 59 echo "original flags to @prog@:" >&2 60 printf " %q\n" ${params+"${params[@]}"} >&2 61 echo "extra flags after to @prog@:" >&2 62 printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 63fi 64 65@prog@ \ 66 ${extraBefore+"${extraBefore[@]}"} \ 67 ${params+"${params[@]}"} \ 68 ${extraAfter+"${extraAfter[@]}"} 69 70if [ "$output" ]; then 71 # Single explicit output 72 signIfRequired "$output" 73else 74 # Multiple inputs, rewritten in place 75 for input in "${inputs[@]}"; do 76 signIfRequired "$input" 77 done 78fi