testdiff2/formatter.sh

64 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Check if the input file is provided
if [ "$#" -eq 0 ]; then
echo "Usage: $0 <input_file.txt>"
exit 1
fi
input_file="$1"
output_file="formatted_files.json"
added_dir="./spiri_src/added"
modified_dir="./spiri_src/modified"
# Create the output directories if they don't exist
mkdir -p "$added_dir"
mkdir -p "$modified_dir"
# Start of the formatted output
echo "{" > "$output_file"
echo ' "file-paths": [' >> "$output_file"
# Loop through each line in the input file
while IFS= read -r line; do
# Extract information from the input line
prefix=$(echo "$line" | cut -c 1)
file_path=$(echo "$line" | awk 'NF>1{print $NF}')
case "$prefix" in
"A")
dst_dir="$added_dir"
;;
"R")
dst_dir="$added_dir"
;;
"M")
dst_dir="$modified_dir"
;;
*)
echo "Unknown prefix: $prefix"
continue
;;
esac
src_path="./SpiriQGC/$file_path"
dst_path="$dst_dir/$file_path"
cp --parents "$src_path" "$dst_dir"
formatted_path=' { "src": "'"$dst_path"'", "dst": "enddestination/'"$file_path"'" },'
echo "$formatted_path" >> "$output_file"
done < "$input_file"
mv ./spiri_src/modified/SpiriQGC/* ./spiri_src/modified/
mv ./spiri_src/added/SpiriQGC/* ./spiri_src/added/
rmdir ./spiri_src/added/SpiriQGC/
rmdir ./spiri_src/modified/SpiriQGC/
# End of the formatted output
echo ' ]' >> "$output_file"
echo "}" >> "$output_file"
echo "Formatted file paths written to $output_file"