WordPress.org

Make WordPress Core

Ticket #33592: svg.sh

File svg.sh, 3.0 KB (added by pento, 4 years ago)
Line 
1createsvg() {
2  local d
3  local svg
4  for d in assets/*.ai; do
5    svg=$(echo "$d" | sed 's/.ai/.svg/')
6    echo "creating $svg ..."
7    inkscape -f "$d" -l "$svg"
8  done
9  mkdir -p svg
10  mv assets/*.svg svg/
11}
12
13viewport() {
14  local f
15  for f in svg/*.svg; do
16    content=$(
17      cat "$f" |
18      sed 's/<!-- Created with Inkscape (http:\/\/inkscape.org\/) -->//' |
19      sed 's/viewBox="0 0 47.5 47.5"//' |
20      sed 's/height="47.5"/viewBox="0 0 47.5 47.5"/' |
21      sed 's/width="47.5"/style="enable-background:new 0 0 47.5 47.5;"/' |
22      sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g' |
23      sed -e 's/  */ /g' |
24      sed -e 's/ \/>/\/>/g'
25    )
26    echo "$f"
27    echo "$content" >"$f"
28  done
29}
30
31skintone() {
32  local f
33  local key
34  local tonecode
35  local tone
36  local content
37
38  local tonecodes=(1f3fb 1f3fc 1f3fd 1f3fe 1f3ff)
39  local tones=(fadcbc e0bb95 bf8468 9b643d 594539)
40
41  local base=(1f466 1f467 1f468 1f469 1f474 1f475 1f476 1f471 1f46e 1f472 1f473 1f477 1f478 1f482 1f385 1f47c 1f486 1f487 1f470 1f64d 1f64e 1f645 1f646 1f481 1f64b 1f647 1f600 1f601 1f602 1f603 1f604 1f605 1f606 1f609 1f60a 1f60b 1f60e 1f60d 1f618 1f617 1f619 1f61a 263a 1f642 1f917 1f607 1f914 1f610 1f611 1f636 1f644 1f60f 1f623 1f625 1f62e 1f910 1f62f 1f62a 1f62b 1f634 1f60c 1f913 1f61b 1f61c 1f61d 2639 1f641 1f612 1f613 1f614 1f615 1f616 1f643 1f637 1f912 1f915 1f911 1f632 1f61e 1f61f 1f624 1f622 1f62d 1f626 1f627 1f628 1f629 1f62c 1f630 1f631 1f633 1f635 1f621 1f620 1f47f 1f608 1f64c 1f64f 1f6b6 1f3c3 1f483 1f4aa 1f448 1f449 261d 1f446 1f595 1f447 270c 1f596 1f918 1f590 270a 270b 1f44a 1f44c 1f44d 1f44e 1f44b 1f44f 1f450 270d 1f485 1f442 1f443 1f6a3 1f6c0 1f3c2 1f3c4 1f3c7 1f3ca 1f6b4 1f6b5);
42
43  for f in "${base[@]}"; do
44    if [ ! -f "svg/$f.svg" ]; then
45      continue
46    fi
47
48    for key in "${!tonecodes[@]}"; do
49      tonecode="${tonecodes[$key]}"
50      tone="${tones[$key]}"
51
52      # Convert "white" skin tone
53      content=$(
54        cat "svg/$f.svg" |
55        sed "s/#d79e84/#$tone/g"
56      )
57      content=$(
58        echo "$content" |
59        sed "s/#d99e82/#$tone/g"
60      )
61
62      # Convert "yellow" skin tone
63      content=$(
64        echo "$content" |
65        sed "s/#ffcc4d/#$tone/g"
66      )
67      content=$(
68        echo "$content" |
69        sed "s/#fdcb58/#$tone/g"
70      )
71
72      # Convert "purple" skin tone
73      content=$(
74        echo "$content" |
75        sed "s/#aa8ed6/#$tone/g"
76      )
77
78      # Convert "red" skin tone
79      content=$(
80        echo "$content" |
81        sed "s/#da2f47/#$tone/g"
82      )
83
84      # Special cases for the darkest skin tone
85      if [ $tone == "594539" ]; then
86        # Make eyes darker
87        content=$(
88          echo "$content" |
89          sed "s/#662113/#101010/g"
90        )
91        content=$(
92          echo "$content" |
93          sed "s/#664500/#101010/g"
94        )
95
96        # Make hair darker
97        content=$(
98          echo "$content" |
99          sed "s/#642116/#101010/g"
100        )
101      fi
102
103      echo "svg-diversity/$f-$tonecode.svg"
104      echo "$content" >"svg-diversity/$f-$tonecode.svg"
105    done
106  done
107}
108
109#createsvg
110
111#viewport
112
113skintone