Browse Source

[nb] Edit: Olivero Sub-theme commands.md

master
rdrew 2 weeks ago
parent
commit
d19738fff4
  1. 81
      Olivero Sub-theme commands.md

81
Olivero Sub-theme commands.md

@ -38,3 +38,84 @@ copy these files back into the sync folder and run:
*Manually configure the Display contexts so the viewers are placed in the new theme
<!--Below is a bask script that will copy a theme dir and rename all files in and out:-->
#!/bin/bash
# Prompt for source directory
read -p "Enter the source directory path: " SOURCE_DIR
# Check if source directory exists
if [ ! -d "$SOURCE_DIR" ]; then
echo "Error: Source directory '$SOURCE_DIR' does not exist."
exit 1
fi
# Prompt for new directory name
read -p "Enter the new directory name: " NEW_DIR
# Prompt for old theme name to replace
read -p "Enter the old theme name to replace: " OLD_THEME
# Prompt for new theme name
read -p "Enter the new theme name: " NEW_THEME
# Extract the parent directory from SOURCE_DIR to place the new directory there
PARENT_DIR=$(dirname "$SOURCE_DIR")
NEW_PATH="$PARENT_DIR/$NEW_DIR"
# Check if new directory already exists
if [ -d "$NEW_PATH" ]; then
echo "Error: Directory '$NEW_PATH' already exists."
exit 1
fi
# Copy the source directory to the new directory
echo "Copying '$SOURCE_DIR' to '$NEW_PATH'..."
cp -r "$SOURCE_DIR" "$NEW_PATH"
if [ $? -ne 0 ]; then
echo "Error: Failed to copy the directory."
exit 1
fi
# Change to the new directory
cd "$NEW_PATH" || exit 1
# Generate case variations of OLD_THEME and NEW_THEME
OLD_THEME_LOWER=$(echo "$OLD_THEME" | tr '[:upper:]' '[:lower:]')
OLD_THEME_UPPER=$(echo "$OLD_THEME" | tr '[:lower:]' '[:upper:]')
OLD_THEME_FIRSTCAP=$(echo "$OLD_THEME" | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}')
NEW_THEME_LOWER=$(echo "$NEW_THEME" | tr '[:upper:]' '[:lower:]')
NEW_THEME_UPPER=$(echo "$NEW_THEME" | tr '[:lower:]' '[:upper:]')
NEW_THEME_FIRSTCAP=$(echo "$NEW_THEME" | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}')
# Escape special characters for sed
OLD_THEME_LOWER_ESC=$(echo "$OLD_THEME_LOWER" | sed 's/[\/&]/\\&/g')
OLD_THEME_UPPER_ESC=$(echo "$OLD_THEME_UPPER" | sed 's/[\/&]/\\&/g')
OLD_THEME_FIRSTCAP_ESC=$(echo "$OLD_THEME_FIRSTCAP" | sed 's/[\/&]/\\&/g')
NEW_THEME_LOWER_ESC=$(echo "$NEW_THEME_LOWER" | sed 's/[\/&]/\\&/g')
NEW_THEME_UPPER_ESC=$(echo "$NEW_THEME_UPPER" | sed 's/[\/&]/\\&/g')
NEW_THEME_FIRSTCAP_ESC=$(echo "$NEW_THEME_FIRSTCAP" | sed 's/[\/&]/\\&/g')
echo "Matching: '$OLD_THEME_LOWER' → '$NEW_THEME_LOWER', '$OLD_THEME_UPPER' → '$NEW_THEME_UPPER', '$OLD_THEME_FIRSTCAP' → '$NEW_THEME_FIRSTCAP'"
# Rename files by replacing each case variation of OLD_THEME with corresponding NEW_THEME
echo "Renaming files..."
find . -type f \( -name "*$OLD_THEME_LOWER*" -o -name "*$OLD_THEME_UPPER*" -o -name "*$OLD_THEME_FIRSTCAP*" \) | while IFS= read -r file; do
new_file=$(echo "$file" | sed "s/$OLD_THEME_LOWER_ESC/$NEW_THEME_LOWER_ESC/g; s/$OLD_THEME_UPPER_ESC/$NEW_THEME_UPPER_ESC/g; s/$OLD_THEME_FIRSTCAP_ESC/$NEW_THEME_FIRSTCAP_ESC/g")
if [ "$file" != "$new_file" ]; then
mv -v "$file" "$new_file"
fi
done
# Replace each case variation of OLD_THEME with corresponding NEW_THEME in file contents
echo "Replacing in file contents..."
find . -type f -exec sed -i '' -e "s/$OLD_THEME_LOWER_ESC/$NEW_THEME_LOWER_ESC/g" -e "s/$OLD_THEME_UPPER_ESC/$NEW_THEME_UPPER_ESC/g" -e "s/$OLD_THEME_FIRSTCAP_ESC/$NEW_THEME_FIRSTCAP_ESC/g" {} \;
echo "Directory copied, files renamed, and contents updated successfully!"
echo "New directory: '$NEW_PATH'"

Loading…
Cancel
Save