58 lines
1.8 KiB
Bash
58 lines
1.8 KiB
Bash
#!/bin/bash
|
|
set -o nounset
|
|
set -o errexit
|
|
|
|
#####################################################
|
|
# Script to create PNG files from SVG source files. #
|
|
# Dependencies: cairosvg (https://cairosvg.org/) #
|
|
# #
|
|
# Rationale: Generating from SVG instead of storing #
|
|
# image files decreases size of repo and avoids #
|
|
# security vulnerabilites associated with binary #
|
|
# image files. #
|
|
#####################################################
|
|
|
|
convert () {
|
|
COLOR=$1
|
|
# echo "converting file $COLOR..."
|
|
FILE=logo/commitizen-logo-${COLOR}.svg
|
|
if [ ! -f ${FILE} ]; then
|
|
# echo "file $FILE missing!"
|
|
exit 1
|
|
fi
|
|
# echo "conversion in progress..."
|
|
for SIZE in 16 48 96 256 512 1024; do
|
|
cairosvg ${FILE} -f png -W ${SIZE} -H ${SIZE} -d 300 -o logo/commitizen_logo_${COLOR}_${SIZE}x${SIZE}.png
|
|
done
|
|
# echo "done"
|
|
return 0
|
|
}
|
|
|
|
if [[ $(which cairosvg) == "" ]]; then
|
|
# We're not going to mess with installation on OSX or Windows in our build pipelines.
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
echo "cairosvg not found in PATH. Please see https://cairosvg.org/documentation/#installation"
|
|
exit 0
|
|
elif [[ "$OSTYPE" == "msys"* ]]; then
|
|
echo "cairosvg not found in PATH. Please see https://cairosvg.org/documentation/#installation"
|
|
exit 0
|
|
fi
|
|
pip3 install cairosvg
|
|
fi
|
|
|
|
for COLOR in black blue white color; do
|
|
FILE=logo/commitizen-logo-${COLOR}.svg
|
|
if [ ! -f ${FILE} ]; then
|
|
# echo "generating file $FILE..."
|
|
sed 's|fill=\".*\"|fill=\"'${COLOR}'\"|g' <logo/commitizen-logo-mono.svg >${FILE}
|
|
convert ${COLOR}
|
|
# echo "removing generated file $FILE..."
|
|
rm $FILE
|
|
# echo "success!"
|
|
else
|
|
# echo "file found: $FILE"
|
|
convert ${COLOR}
|
|
fi
|
|
done
|
|
|
|
exit 0 |