Revert "Use non-streaming editor and avoid temporary script"
This reverts commit 11e5f16425
.
This commit is contained in:
parent
93ed6a5190
commit
3229524805
|
@ -39,7 +39,19 @@ read author
|
||||||
cp -r -- template_module "$module_dir"
|
cp -r -- template_module "$module_dir"
|
||||||
cd -- "$module_dir"
|
cd -- "$module_dir"
|
||||||
|
|
||||||
# Disallow % in fields that will be used in %-delimited ed substitution
|
# Fill in the blanks in the template
|
||||||
|
# `sed -i` is not portable so we create something like it ourselves
|
||||||
|
sed_inplace="`mktemp`"
|
||||||
|
cleanup_sed() { rm -f -- "$sed_inplace"; }
|
||||||
|
trap cleanup_sed EXIT
|
||||||
|
print '
|
||||||
|
filename="$1"
|
||||||
|
shift 1
|
||||||
|
tmpfile="`mktemp`"
|
||||||
|
sed "$@" -- "$filename" > "$tmpfile"
|
||||||
|
mv -- "$tmpfile" "$filename"
|
||||||
|
' > "$sed_inplace"
|
||||||
|
chmod 0500 -- "$sed_inplace" # Make executable
|
||||||
assert_no_percent() {
|
assert_no_percent() {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
*"%"*) println "$2 must not contain %" >&2; exit 1 ;;
|
*"%"*) println "$2 must not contain %" >&2; exit 1 ;;
|
||||||
|
@ -48,25 +60,11 @@ assert_no_percent() {
|
||||||
assert_no_percent "$author" "Author name"
|
assert_no_percent "$author" "Author name"
|
||||||
assert_no_percent "$module_name" "Module name"
|
assert_no_percent "$module_name" "Module name"
|
||||||
assert_no_percent "$module" "Module path name"
|
assert_no_percent "$module" "Module path name"
|
||||||
|
find . -type f -exec "$sed_inplace" '{}' -e "
|
||||||
# Fill in the blanks in the template
|
s/{YEAR}/$(date +%Y)/
|
||||||
# `sed -i` is not portable so we create something like it ourselves
|
s%{AUTHOR}%$author%
|
||||||
reced() {
|
s%{MODULE_NAME}%$module_name%
|
||||||
for file in "$1"/*; do
|
s%{MODULE}%$module%" \;
|
||||||
if [ -f "$file" ]; then
|
|
||||||
ed "$file" <<HERE
|
|
||||||
%s/{YEAR}/$(date +%Y)/
|
|
||||||
%s%{AUTHOR}%$author%
|
|
||||||
%s%{MODULE_NAME}%$module_name%
|
|
||||||
%s%{MODULE}%$module%
|
|
||||||
wq
|
|
||||||
HERE
|
|
||||||
elif [ -d "$file" ]; then
|
|
||||||
reced "$file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
reced .
|
|
||||||
|
|
||||||
# Arduino IDE requires .ino sketches to have the same name as their directory
|
# Arduino IDE requires .ino sketches to have the same name as their directory
|
||||||
mv -- main.ino "$module.ino"
|
mv -- main.ino "$module.ino"
|
||||||
|
|
Loading…
Reference in a new issue