2016-10-10 19:26:29 +00:00
|
|
|
#!/usr/bin/env bash
|
2016-09-18 22:58:04 +00:00
|
|
|
|
2016-10-22 12:52:49 +00:00
|
|
|
# Authors: w0rp <devw0rp@gmail.com>, hauleth <lukasz@niemier.pl>
|
2016-10-03 18:20:13 +00:00
|
|
|
# Description: This script implements a wrapper for any program which does not accept
|
|
|
|
# stdin input on most Unix machines. The input to the script is read to a
|
|
|
|
# temporary file, and the first argument sets a particular file extension
|
|
|
|
# for the temporary file.
|
2016-09-18 22:58:04 +00:00
|
|
|
|
2016-10-22 12:52:49 +00:00
|
|
|
set -eu
|
|
|
|
|
2016-10-03 18:20:13 +00:00
|
|
|
# All of the following arguments are read as command to run.
|
2016-09-18 22:58:04 +00:00
|
|
|
file_extension="$1"
|
|
|
|
shift
|
|
|
|
|
2016-10-22 12:52:49 +00:00
|
|
|
temp_dir=$(mktemp -d 2>/dev/null || mktemp -d -t 'ale_linter')
|
|
|
|
temp_file="$temp_dir/file$file_extension"
|
|
|
|
trap 'rm -r "$temp_dir"' EXIT
|
2016-09-18 22:58:04 +00:00
|
|
|
|
2016-10-22 12:52:49 +00:00
|
|
|
# In perfect world it wouldn't be needed, but some tools (`go vet`, I am looking
|
|
|
|
# at you) do not fit in line and require filename ending. Otherwise it would be
|
|
|
|
# simple as
|
|
|
|
#
|
|
|
|
# "$@" /dev/stdin
|
|
|
|
#
|
|
|
|
# without all that hackery with copying `/dev/stdin`
|
|
|
|
cp /dev/stdin "$temp_file"
|
2016-09-18 22:58:04 +00:00
|
|
|
|
|
|
|
"$@" "$temp_file"
|