diff options
author | 2017-10-27 12:42:14 +0200 | |
---|---|---|
committer | 2017-10-27 12:42:14 +0200 | |
commit | 7a5099b5503815288aea4090b54eb3cd38fae4cc (patch) | |
tree | f61e129fdec5b484f05aac1262065a0907f8b55c /tools | |
parent | f8f2ec84566e9b9a6241cb14e155db1a27c1546c (diff) | |
download | flat-remix-7a5099b5503815288aea4090b54eb3cd38fae4cc.tar.gz flat-remix-7a5099b5503815288aea4090b54eb3cd38fae4cc.zip |
ffsvg.sh
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/ffsvg.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/ffsvg.sh b/tools/ffsvg.sh new file mode 100755 index 000000000..02f6a631b --- /dev/null +++ b/tools/ffsvg.sh @@ -0,0 +1,78 @@ +#!/bin/sh +# +# Written in 2016 by Sergei Eremenko <https://github.com/SmartFinn> +# +# To the extent possible under law, the author(s) have dedicated all copyright +# and related and neighboring rights to this software to the public domain +# worldwide. This software is distributed without any warranty. +# +# You should have received a copy of the CC0 Public Domain Dedication along +# with this software. If not, see +# <http://creativecommons.org/publicdomain/zero/1.0/>. +# +# Description: +# This script finds, fixes and cleans SVG files. +# +# Usage: +# ffsvg.sh PATH... + +set -e + +SCRIPT_DIR=$(dirname "$0") + +_run_helpers() { + echo "=> Working on '$1' ..." >&2 + + # optimize a SVG + if command -v svgo > /dev/null 2>&1; then + # use SVGO + svgo --config="$SCRIPT_DIR/_svgo.yml" -i "$1" + elif command -v scour > /dev/null 2>&1; then + # use scour + "$SCRIPT_DIR/_scour.sh" "$1" + else + cat <<-'EOF' + + You should have installed svgo or scour to use this script. + + sudo apt-get install python-scour + + EOF + + exit 1 + fi + + # fix a color scheme + #"$SCRIPT_DIR/_fix_color_scheme.sh" "$1" + + # clear attributes + sed -r -i -f "$SCRIPT_DIR/_clean_attrs.sed" "$1" + + # clear a style attribute + sed -r -i -f "$SCRIPT_DIR/_clean_style_attr.sed" "$1" +} + +for i in "$@"; do + if [ -d "$i" ]; then + # is a directory + + echo "=> Directory '$i' will be processed." >&2 + echo " Press <CTRL-C> to abort (wait 1 seconds) ..." >&2 + + sleep 1 + + # process all SVG files w/o symlinks + find "$i" -type f -name '*.svg' | while read -r file; do + _run_helpers "$file" + done + elif [ -f "$i" ] && [ ! -L "$i" ]; then + # is a file and is not a symlink + + # continue if an extension is svg + [ "${i##*.}" = "svg" ] || continue + + _run_helpers "$i" + else + continue + fi +done |