2 # Converts my logo to various formats from a template SVG
5 SIZES=(2048 1024 512 256 128 64)
6 A_SIZES=(10 15 20 25 30 35 40 45 50 55 60)
8 [[ -z ${1} ]] && echo "Please provide an output format!" && exit 1
10 [[ ${1} == "svg" ]] && find . -name *.svg -not -path "./template/*" -exec rm -v {} \;
12 if [[ (! -d "square/svg" || ! -d "circle/svg") || (${1} == "svg") ]]; then
13 echo "Generating SVGs"
14 for SHAPE in square circle; do
15 mkdir -pv ${SHAPE}/svg
17 sed -e 's/STROKE/stroke="#00ffbf"/g' \
18 -e 's/FILL/#212121/g' template/${SHAPE}.svg \
19 > ${SHAPE}/svg/logo-${SHAPE}-color-dark.svg
21 sed -e 's/STROKE/stroke="#00ffbf"/g' \
22 -e 's/FILL/#fff/g' template/${SHAPE}.svg \
23 > ${SHAPE}/svg/logo-${SHAPE}-color-white.svg
25 sed -e 's/STROKE/stroke="#00ffbf"/g' \
26 -e 's/FILL/none/g' template/${SHAPE}.svg \
27 > ${SHAPE}/svg/logo-${SHAPE}-color-trans.svg
29 sed -e 's/STROKE/stroke="#212121"/g' \
30 -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
31 > ${SHAPE}/svg/logo-${SHAPE}-dark-color.svg
33 sed -e 's/STROKE/stroke="#212121"/g' \
34 -e 's/FILL/#fff/g' template/${SHAPE}.svg \
35 > ${SHAPE}/svg/logo-${SHAPE}-dark-white.svg
37 sed -e 's/STROKE/stroke="#212121"/g' \
38 -e 's/FILL/none/g' template/${SHAPE}.svg \
39 > ${SHAPE}/svg/logo-${SHAPE}-dark-trans.svg
41 sed -e 's/STROKE/stroke="#fff"/g' \
42 -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
43 > ${SHAPE}/svg/logo-${SHAPE}-white-color.svg
45 sed -e 's/STROKE/stroke="#fff"/g' \
46 -e 's/FILL/#212121/g' template/${SHAPE}.svg \
47 > ${SHAPE}/svg/logo-${SHAPE}-white-dark.svg
49 sed -e 's/STROKE/stroke="#fff"/g' \
50 -e 's/FILL/none/g' template/${SHAPE}.svg \
51 > ${SHAPE}/svg/logo-${SHAPE}-white-trans.svg
55 [[ ${1} == "svg" ]] && exit 0
57 [[ ${1} == "png" ]] && find . -name *.png -exec rm -v {} \;
59 if [[ (! -d "square/png" || ! -d "circle/png") || (${1} == "png") ]]; then
60 echo "Generating PNGs"
61 for SHAPE in square circle; do
62 for i in ${SIZES[@]}; do
63 mkdir -pv ${SHAPE}/png/${i}
66 for i in ${SIZES[@]}; do
67 for SVGIN in square/svg/*; do
68 BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
69 inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
70 square/png/${i}/${BASE}-${i}.png
73 for SVGIN in circle/svg/*; do
74 BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
75 inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
76 circle/png/${i}/${BASE}-${i}.png
82 [[ ${1} == "png" ]] && exit 0
84 if [[ ${1} == "ascii" ]]; then
85 echo "Generating ASCII art"
86 find . -name *ascii.txt -exec rm -v {} \;
87 for SHAPE in square circle; do
88 for i in ${A_SIZES[@]}; do
89 mkdir -pv ${SHAPE}/ascii/${i}
91 for PNGIN in circle/png/2048/*; do
92 BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
93 jp2a --height=${i} ${PNGIN} > circle/ascii/${i}/${BASE}-${i}.ascii.txt
96 for PNGIN in square/png/2048/*; do
97 BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
98 jp2a --height=${i} ${PNGIN} > square/ascii/${i}/${BASE}-${i}.ascii.txt
105 if [[ ${1} == "unicode" ]]; then
106 echo "Generating Unicode"
107 find . -name *unicode.txt -exec rm -v {} \;
108 for SHAPE in square circle; do
109 for i in ${A_SIZES[@]}; do
110 mkdir -pv ${SHAPE}/unicode/${i}
112 for PNGIN in circle/png/2048/*; do
113 BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
114 chafa -c none -s ${i}x${i} ${PNGIN} \
115 > circle/unicode/${i}/${BASE}-${i}.unicode.txt
118 for PNGIN in square/png/2048/*; do
119 BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
120 chafa -c none -s ${i}x${i} ${PNGIN} \
121 > square/unicode/${i}/${BASE}-${i}.unicode.txt
128 for SHAPE in square circle; do
129 find . -name *.${1} -exec rm -v {} \;
131 for i in ${SIZES[@]}; do
132 mkdir -pv ${SHAPE}/${1}/${i}
136 echo "Generating ${1}s"
137 convert -verbose ${PAT} ${PAT//png/${1}}
138 done < <(find -name *.png)