Combine expressions into one sed call #2504

This commit is contained in:
Sergei Eremenko 2021-01-11 12:52:22 +02:00
parent 527875a346
commit dc8aaf4025
No known key found for this signature in database
GPG key ID: AB6D54C1C16D2507

View file

@ -25,8 +25,12 @@ set -e
# Papirus, Papirus-Dark, Papirus-Light, and ePapirus # Papirus, Papirus-Dark, Papirus-Light, and ePapirus
add_class() { 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 \ 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):(#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):#4285f4/I s/(style="[^"]+")/\1 class="ColorScheme-Highlight"/' \
-e '/([^-]color|fill|stop-color|stroke):#4caf50/I s/(style="[^"]+")/\1 class="ColorScheme-PositiveText"/' \ -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() { replace_hex_to_current_color() {
# if class exist: # if class exist:
# - remove color # - remove color
@ -76,8 +70,6 @@ for file in "$@"; do
if grep -q -i '\.ColorScheme-Text' "$file"; then if grep -q -i '\.ColorScheme-Text' "$file"; then
# the file has a color scheme # the file has a color scheme
remove_colorscheme_class "$file"
if grep -q -i 'color:\(#444444\|#dfdfdf\|#6e6e6e\|#ffffff\)' "$file"; then if grep -q -i 'color:\(#444444\|#dfdfdf\|#6e6e6e\|#ffffff\)' "$file"; then
# it's Papirus, Papirus-Dark, Papirus-Light or ePapirus # it's Papirus, Papirus-Dark, Papirus-Light or ePapirus
add_class "$file" add_class "$file"