| tags="" | |
| #https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-a-bash-variable | |
| trim() { | |
| local var="$*" | |
| # remove leading whitespace characters | |
| var="${var#"${var%%[![:space:]]*}"}" | |
| # remove trailing whitespace characters | |
| var="${var%"${var##*[![:space:]]}"}" | |
| echo -n "$var" | |
| } | |
| #https://stackoverflow.com/questions/19408649/pipe-input-into-a-script | |
| if [ -p /dev/stdin ]; then | |
| while IFS= read tag; do | |
| tags="$tags $(trim $tag)" | |
| done | |
| fi | |
| if [ $# -eq 0 ]; then | |
| echo >&2 "" | |
| echo >&2 "silentextractspecific by bcov - a tool to easily extract specific tags from silent files" | |
| echo >&2 "Usage:" | |
| echo >&2 " cat list_of_tags.list | silentextractspecific myfile.silent" | |
| echo >&2 " or" | |
| echo >&2 " silentextractspecific myfile.silent tag1 tag2 tag3" | |
| echo >&2 "Flags:" | |
| echo >&2 " -j cpus" | |
| echo >&2 " -p param_file" | |
| echo >&2 " @flags_file" | |
| exit 1 | |
| fi | |
| source $(dirname $(type -p "$0"))/_helpers/extract_flags.sh | |
| silent=$1 | |
| shift | |
| for tag in "$@"; do | |
| tags="$tags $(trim $tag)" | |
| done | |
| if [ -z "$tags" ]; then | |
| exit 0; | |
| fi | |
| tmp_file=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13) | |
| tmp_file="tmp_${tmp_file}.silent" | |
| echo "$tags" | silentslice $silent > $tmp_file | |
| silentextract $tmp_file | |
| rm $tmp_file | |