64 lines
1.5 KiB
Bash
64 lines
1.5 KiB
Bash
|
#!/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"
|