2024-03-04 10:55:52 -06:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
declare -A replacements
|
|
|
|
replacements["Agency FB"]="Noto Sans"
|
|
|
|
replacements["Segoe UI"]="Noto Sans"
|
|
|
|
replacements["Univers 45 Light"]="Noto Sans"
|
|
|
|
replacements["Trebuchet MS"]="Noto Sans"
|
|
|
|
replacements["Perpetua"]="Noto Sans"
|
|
|
|
replacements["Calibri Light"]="Noto Sans"
|
|
|
|
replacements["Rockwell"]="Noto Sans"
|
|
|
|
replacements["DFKai-SB"]="Noto Sans"
|
|
|
|
replacements["Gill Sans MT"]="Noto Sans"
|
|
|
|
replacements["BentonSans Medium"]="Noto Sans"
|
|
|
|
replacements["BentonSans"]="Noto Sans"
|
|
|
|
replacements["AdvPS88D1"]="Noto Sans"
|
|
|
|
replacements["NexusSansOT"]="Noto Sans"
|
2024-03-07 04:00:31 -06:00
|
|
|
replacements["Segoe Script"]="Noto Sans"
|
2024-03-07 06:50:31 -06:00
|
|
|
replacements["Impact"]="Noto Sans"
|
|
|
|
replacements["Century Gothic"]="Noto Sans"
|
|
|
|
replacements["Kings Caslon Text"]="Noto Sans"
|
|
|
|
replacements["Times"]="Liberation Serif"
|
|
|
|
replacements["Jokerman"]="Noto Sans"
|
|
|
|
replacements["FreeSans"]="Noto Sans"
|
|
|
|
replacements["DINPro-Medium"]="Noto Sans"
|
|
|
|
replacements["Open Sans Light"]="Noto Sans"
|
|
|
|
replacements["Lora - regular"]="Noto Sans"
|
2024-03-07 11:52:48 -06:00
|
|
|
replacements["Tahoma"]="Noto Sans"
|
|
|
|
replacements["Thorndale"]="Liberation Serif"
|
|
|
|
replacements["Albany"]="Liberation Sans"
|
|
|
|
replacements["Lucida Sans Unicode"]="Noto Sans"
|
|
|
|
replacements["Candara"]="Noto Sans"
|
|
|
|
replacements["Verdana"]="Noto Sans"
|
|
|
|
replacements["Gill Sans MT"]="Noto Sans"
|
2024-03-04 10:55:52 -06:00
|
|
|
|
|
|
|
extracted_folder=".temp_extracted"
|
|
|
|
|
|
|
|
for file in $(find "$1" -type f); do
|
|
|
|
file_name=$(basename "$file")
|
|
|
|
current_extension="${file_name##*.}"
|
|
|
|
|
2024-03-07 06:50:31 -06:00
|
|
|
if [[ $current_extension == "docx" || $current_extension == "xlsx" || $current_extension == "pptx" || $current_extension == "odt" ]]; then
|
2024-03-04 10:55:52 -06:00
|
|
|
base_name="${file_name%.*}"
|
|
|
|
|
|
|
|
# move the file to a new .zip file
|
|
|
|
cp "$file" "${base_name}.zip"
|
|
|
|
|
|
|
|
# extract the zip file to a temporary folder
|
|
|
|
unzip -qq ./"${base_name}.zip" -d "$extracted_folder" > /dev/null
|
|
|
|
|
|
|
|
for key in "${!replacements[@]}"
|
|
|
|
do
|
|
|
|
file_changed=false
|
|
|
|
value=${replacements[$key]}
|
|
|
|
for subfile in $(find "$extracted_folder" -type f); do
|
2024-03-07 06:08:24 -06:00
|
|
|
# Replace only if it's between quotes
|
|
|
|
if grep -q "\"$key\"" "$subfile"; then
|
|
|
|
sed -i "s/\"$key\"/\"$value\"/g" "$subfile"
|
|
|
|
file_changed=true
|
|
|
|
# or between '"'
|
|
|
|
elif grep -q ""$key"" "$subfile"; then
|
|
|
|
sed -i "s/"$key"/\"$value\"/g" "$subfile"
|
2024-03-04 10:55:52 -06:00
|
|
|
file_changed=true
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ "$file_changed" = true ]; then
|
|
|
|
# Create a new zip file with the modified files
|
|
|
|
cd "$extracted_folder"; zip -r ../"${base_name}.zip" . > /dev/null; cd ..
|
|
|
|
|
|
|
|
mv "${base_name}.zip" "$file"
|
|
|
|
|
|
|
|
echo "Replacing '$key' with '$value' in $file"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
# Clean up the temporary extracted folder
|
|
|
|
rm -rf "$extracted_folder"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|