]> git.armaanb.net Git - logo.git/blobdiff - svg2img
Make somewhat POSIX compliant
[logo.git] / svg2img
diff --git a/svg2img b/svg2img
index af2e242bf73d12a4cbc3caf1c4998d8d3d4f1c60..41bad8846a28252130c2eb8aa43641170a7f1348 100755 (executable)
--- a/svg2img
+++ b/svg2img
-#!/usr/bin/env bash
+#!/bin/sh
+# Converts my logo to various formats from a template SVG
+# Armaan Bhojwani 2021
 
-if [[ (! -d "png") || (${1} == "png") ]]; then
-  mkdir -p png/1024 png/512 png/256 png/128
-  
-  for PHOTO in svg/*; do
-    BASE=$(basename $PHOTO | cut -d '.' -f 1)
-    inkscape -w 1024 -h 1024 "$PHOTO" --export-filename png/1024/${BASE}.png
-    inkscape -w 512 -h 512 "$PHOTO" --export-filename png/512/${BASE}.png
-    inkscape -w 256 -h 256 "$PHOTO" --export-filename png/256/${BASE}.png
-    inkscape -w 128 -h 128 "$PHOTO" --export-filename png/128/${BASE}.png
-  done
-fi
-
-[[ ${1} == "png" ]] && exit 0
+set -e
 
-rm -rf ${1}
+SIZES="2048 1024 512 256 128 64"
+A_SIZES="10 15 20 25 30 35 40 45 50 55 60"
 
-for PAT in $(find "png" -type d); do
-  mkdir $(echo $PAT | sed "s/png/${1}/g")
-done
+for arg in ${@};do
+  [ -z ${arg} ] && echo "Please provide an output format!" && exit 1
+  
+  [ ${arg} = "svg" ] && find . -name *.svg -not -path "./template/*" \
+    -exec rm -v {} \;
+  
+  if [ ! -d "square/svg" ] || [ ! -d "circle/svg" ] || [ ${arg} = "svg" ]; then
+    echo "Generating SVGs"
+    for SHAPE in square circle; do
+      mkdir -p ${SHAPE}/svg
+  
+      sed -e 's/STROKE/stroke="#00ffbf"/g' \
+        -e 's/FILL/#212121/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-color-dark.svg
+  
+      sed -e 's/STROKE/stroke="#00ffbf"/g' \
+        -e 's/FILL/#fff/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-color-white.svg
+  
+      sed -e 's/STROKE/stroke="#00ffbf"/g' \
+        -e 's/FILL/none/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-color-trans.svg
+  
+      sed -e 's/STROKE/stroke="#212121"/g' \
+        -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-dark-color.svg
+  
+      sed -e 's/STROKE/stroke="#212121"/g' \
+        -e 's/FILL/#fff/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-dark-white.svg
+  
+      sed -e 's/STROKE/stroke="#212121"/g' \
+        -e 's/FILL/none/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-dark-trans.svg
+  
+      sed -e 's/STROKE/stroke="#fff"/g' \
+        -e 's/FILL/#00ffbf/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-white-color.svg
+  
+      sed -e 's/STROKE/stroke="#fff"/g' \
+        -e 's/FILL/#212121/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-white-dark.svg
+  
+      sed -e 's/STROKE/stroke="#fff"/g' \
+        -e 's/FILL/none/g' template/${SHAPE}.svg \
+        > ${SHAPE}/svg/logo-${SHAPE}-white-trans.svg
+    done
+  fi
+  
+  [ ${arg} = "svg" ] && exit 0
+  
+  [ ${arg} = "png" ] && find . -name *.png -not -name ./logo.png \
+    -exec rm -v {} \;
+  
+  if [ ! -d "square/png" ] || [ ! -d "circle/png" ] || [ ${arg} = "png" ]; then
+    echo "Generating PNGs"
+    for SHAPE in square circle; do
+      set -- $SIZES
+      for i in $@; do
+        mkdir -p ${SHAPE}/png/${i}
+      done
+  
+      for i in $@; do
+        for SVGIN in square/svg/*; do
+          BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
+          inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
+            square/png/${i}/${BASE}-${i}.png
+        done
+  
+        for SVGIN in circle/svg/*; do
+          BASE=$(basename ${SVGIN} | cut -d '.' -f 1)
+          inkscape -w ${i} -h ${i} ${SVGIN} --export-filename \
+            circle/png/${i}/${BASE}-${i}.png
+        done
+      done
+    done
+  fi
+  
+  [ ${arg} = "png" ] && exit 0
+  
+  if [ ${arg} = "ascii" ]; then
+    echo "Generating ASCII art"
+    find . -name *ascii.txt -exec rm -v {} \;
+    for SHAPE in square circle; do
+      set -- $A_SIZES
+      for i in $@; do
+        mkdir -p ${SHAPE}/ascii/${i}
+  
+        for PNGIN in circle/png/2048/*; do
+          BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
+          jp2a --height=${i} ${PNGIN} > circle/ascii/${i}/${BASE}-${i}.ascii.txt
+        done
+  
+        for PNGIN in square/png/2048/*; do
+          BASE=$(basename ${PNGIN} | cut -d '.' -f 1)
+          jp2a --height=${i} ${PNGIN} > square/ascii/${i}/${BASE}-${i}.ascii.txt
+        done
+      done
+    done
+    exit 0
+  fi
+  
+  if [ ${arg} = "unicode" ]; then
+    echo "Generating Unicode"
+    find . -name *unicode.txt -exec rm -v {} \;
+    for SHAPE in square circle; do
+      set -- $A_SIZES
+      for i in $@; do
+        mkdir -p ${SHAPE}/unicode/${i}
+  
+        for PNGIN in circle/png/2048/*; do
+          BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
+          chafa -c none -s ${i}x${i} ${PNGIN} \
+            > circle/unicode/${i}/${BASE}-${i}.unicode.txt
+        done
+  
+        for PNGIN in square/png/2048/*; do
+          BASE=$(basename ${PNGIN} | cut -d '-' -f -4)
+          chafa -c none -s ${i}x${i} ${PNGIN} \
+            > square/unicode/${i}/${BASE}-${i}.unicode.txt
+        done
+      done
+    done
+    exit 0
+  fi
+  
+  for SHAPE in square circle; do
+    find . -name '*.${arg}' -exec rm -v {} \;
+  
+    set -- $SIZES
+    for i in $@; do
+      mkdir -p ${SHAPE}/${arg}/${i}
+    done
 
-for PAT in $(find "png" -type f); do
-  BASE=$(echo $PAT | sed "s/png/${1}/g")
-  convert -verbose $PAT $BASE
+    for PAT in $(find . -name '*.png' -not -name ./logo.png); do
+      echo "Generating ${arg}s"
+      convert -verbose ${PAT} $(printf "%s" "$PAT" | sed "s/\.png/.$arg/g")
+    done
+  done
 done