diff --git a/install.sh b/install.sh index 07e742a..88b531c 100755 --- a/install.sh +++ b/install.sh @@ -13,39 +13,36 @@ install_files() { echo "Source directory ${source_dir} does not exist, skipping." return fi - ( - cd "${source_dir}" - for f in "${source_dir}"/*; do - case "$(basename "$f")" in - dotfiles) - install_files "${target_dir}" "$f" . - ;; - *.jq) + for f in "${source_dir}"/*; do + case "$(basename "$f")" in + dotfiles) + install_files "${target_dir}" "$f" . + ;; + *.jq) + tmpfile="$(mktemp)" + if [ -f "$f" ]; then tmpfile="$(mktemp)" - if [ -f "$f" ]; then - tmpfile="$(mktemp)" - target_file="${target_dir}/$(basename "$f" .jq)" - if [ -f "$target_file" ]; then - cat "$target_file" - else - echo "{}" - fi | jq "$(cat "$f")" > "$tmpfile" - mv -v "$tmpfile" "$target_file" + target_file="${target_dir}/$(basename "$f" .jq)" + if [ -f "$target_file" ]; then + cat "$target_file" else - echo "Expected source file with .jq extension not to be a directory." - exit 1 - fi - ;; - *) - if [ -d "$f" ]; then - install_files "${target_dir}/${target_filename_prefix}$(basename "$f")" "$f" - else - cp -v "$f" "${target_dir}/${target_filename_prefix}$(basename "$f")" - fi - ;; - esac - done - ) + echo "{}" + fi | jq "$(cat "$f")" > "$tmpfile" + mv -v "$tmpfile" "$target_file" + else + echo "Expected source file with .jq extension not to be a directory." + exit 1 + fi + ;; + *) + if [ -d "$f" ]; then + install_files "${target_dir}/${target_filename_prefix}$(basename "$f")" "$f" + else + cp -v "$f" "${target_dir}/${target_filename_prefix}$(basename "$f")" + fi + ;; + esac + done } ###