blob: c386bc3f25c933bf904059ffcb90e20c6cbfe304 [file] [log] [blame]
#!/bin/sh
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# cat.sh output_file [file, ...]
# cat.sh concatenates all file arguments into output_file, separated by lines.
# cat.sh elides empty lines (in order to avoid breaking the symbolizer)
# Note: `cat $output $@` is not equivalent - that does not produce new lines
# between inputs.
readonly output="$1"
if [[ -z "$output" ]]; then
echo output file not specified 1>&2
exit 1
fi
shift 1
tmpfile=$( mktemp "${output}.XXXXXXXXXX" )
trap 'rm -f "${tmpfile}"' EXIT
for file in "$@"
do
if [ ! -e "$file" ]; then
echo "File does not exist: $file" 1>&2
exit 1
fi
while read line
do
if [ -n "${line}" ]; then
echo "${line}"
fi
done < "${file}"
done > "${tmpfile}"
mv "${tmpfile}" "${output}"