Simplewaita/source/templates/use_scheme.sh

56 lines
1.6 KiB
Bash
Executable file

#! /bin/bash
# exit when any command fails
set -e
usage () {
echo -e "\nUsage:"
echo -e $(basename "$0") "name_of_color_scheme_file.sh\n"
echo -e "Changes current color scheme for Skewaita, using the specified color scheme bash file."
echo -e "After this step, you need to rebuild the theme:"
echo -e 'go up one directory, to "source", and execute "./compile.sh light" or "./compile.sh dark" depending on whether the theme is light or dark\n'
}
# Check for correct parameters and the existence of color scheme file
if [[ $# -ne 1 ]]
then
usage
exit 1
fi
filename=$1
# if color scheme filename provided does not include .sh extension, add it
[[ "$filename" == *.sh ]] || filename="$filename.sh"
echo -e "\nReading color scheme from file '$filename'\n"
source $filename
# envsubst <_theme_colors.scss >theme_colors_.scss.processed # not working!
echo "New color scheme read; processing template files..."
for FILE in "_theme_colors.scss" "gtkrc" ; do
echo " processing $FILE..."
while read -r line ; do
while [[ "$line" =~ (\$\{[a-zA-Z_][a-zA-Z_0-9]*\}) ]] ; do
LHS=${BASH_REMATCH[1]}
RHS="$(eval echo "\"$LHS\"")"
line=${line//$LHS/$RHS}
done
echo "$line"
done < "$FILE" > "$FILE.processed"
done
echo "Done; copying processed files"
cp _theme_colors.scss.processed ../common/_theme_colors.scss
cp gtkrc.processed ../../gtk-2.0/gtkrc
echo -e "\nSUCCESS\n"
echo "Now you need to rebuild the theme:"
echo -e 'go up one directory, to "source", and execute "./compile.sh light" or "./compile.sh dark" depending on whether the theme is light or dark\n'