diff --git a/tools/_fix_color_scheme.sh b/tools/_fix_color_scheme.sh index afc59224ed..0c61360c79 100755 --- a/tools/_fix_color_scheme.sh +++ b/tools/_fix_color_scheme.sh @@ -25,8 +25,12 @@ set -e # Papirus, Papirus-Dark, Papirus-Light, and ePapirus add_class() { - # add the class if a value matches: + # 1. remove class="ColorScheme-*" if currentColor is missing + # 2. remove class="ColorScheme-*" if color property is set + # 3. add a class if color value matches sed -i -r \ + -e '/:currentColor/! s/[ ]class="ColorScheme-[^"]+"//g' \ + -e '/[^-]color:[^;"]/ s/[ ]class="ColorScheme-[^"]+"//g' \ -e '/([^-]color|fill|stop-color|stroke):(#444444|#dfdfdf|#6e6e6e|#ffffff)/I s/(style="[^"]+")/\1 class="ColorScheme-Text"/' \ -e '/([^-]color|fill|stop-color|stroke):#4285f4/I s/(style="[^"]+")/\1 class="ColorScheme-Highlight"/' \ -e '/([^-]color|fill|stop-color|stroke):#4caf50/I s/(style="[^"]+")/\1 class="ColorScheme-PositiveText"/' \ @@ -47,16 +51,6 @@ add_class_symbolic() { "$@" } -remove_colorscheme_class() { - # remove class to avoid duplicates - # 1. remove class="ColorScheme-*" if currentColor is missing - # 2. remove class="ColorScheme-*" if color property is set - sed -i -r \ - -e '/class="ColorScheme-/ { /:currentColor/! s/[ ]class="ColorScheme-[^"]+"// }' \ - -e '/class="ColorScheme-/ { /[^-]color:[^";]+/ s/[ ]class="ColorScheme-[^"]+"// }' \ - "$@" -} - replace_hex_to_current_color() { # if class exist: # - remove color @@ -76,8 +70,6 @@ for file in "$@"; do if grep -q -i '\.ColorScheme-Text' "$file"; then # the file has a color scheme - remove_colorscheme_class "$file" - if grep -q -i 'color:\(#444444\|#dfdfdf\|#6e6e6e\|#ffffff\)' "$file"; then # it's Papirus, Papirus-Dark, Papirus-Light or ePapirus add_class "$file"