return 1
fi
fi
-
+
+ local strings
if (( $# == 0 )); then
unset IFS
while read -r x; do
strings=( "$@" )
fi
- # fix files with no newline at the end.
- # the following command won't work right on them otherwise.
- # e = run script, $a\ means append following text, but there is none,
- # so sed only does what it always does when it was supposed to modify a file,
- # which is append a newline if there was none.
- sed -ie '$a\' "$file"
- # command substitution removes any trailing newlines, so we have to add
- # a non-newline ending, we randomly chose "b", then remove it.
- content=$(cat "$file"; echo b) content=${content%b}
+ if $new_file; then
+ # fix files with no newline at the end.
+ # the following command won't work right on them otherwise.
+ # e = run script, $a\ means append following text, but there is none,
+ # so sed only does what it always does when it was supposed to modify a file,
+ # which is append a newline if there was none.
+ sed -ie '$a\' "$file"
+ # command substitution removes any trailing newlines, so we have to add
+ # a non-newline ending, we randomly chose "b", then remove it.
+ local content=$(cat "$file"; echo b) content=${content%b}
+ fi
# we aren't using regex because we want to match strings,
# but we also want our match to start at the beginning of a line,
)"
local end="
*"
- local return_code
+ local return_code string return_code
for string in "${strings[@]}"; do
if $new_file || [[ $content != $start"$string"$end ]]; then
if ! tee -a "$file"<<<"$string"; then
return 1
fi
fi
-
+
+ local strings
if (( $# == 0 )); then
unset IFS
while read -r x; do
strings=( "$@" )
fi
- # fix files with no newline at the end.
- # the following command won't work right on them otherwise.
- # e = run script, $a\ means append following text, but there is none,
- # so sed only does what it always does when it was supposed to modify a file,
- # which is append a newline if there was none.
- sed -ie '$a\' "$file"
- # command substitution removes any trailing newlines, so we have to add
- # a non-newline ending, we randomly chose "b", then remove it.
- content=$(cat "$file"; echo b) content=${content%b}
+ if $new_file; then
+ # fix files with no newline at the end.
+ # the following command won't work right on them otherwise.
+ # e = run script, $a\ means append following text, but there is none,
+ # so sed only does what it always does when it was supposed to modify a file,
+ # which is append a newline if there was none.
+ sed -ie '$a\' "$file"
+ # command substitution removes any trailing newlines, so we have to add
+ # a non-newline ending, we randomly chose "b", then remove it.
+ local content=$(cat "$file"; echo b) content=${content%b}
+ fi
# we aren't using regex because we want to match strings,
# but we also want our match to start at the beginning of a line,
)"
local end="
*"
- local return_code
+ local return_code string return_code
for string in "${strings[@]}"; do
if $new_file || [[ $content != $start"$string"$end ]]; then
if ! tee -a "$file"<<<"$string"; then