#!/bin/sh # # gitsch2ppm - Generate PPM files for KiCad schematics in git # # Written 2010 by Werner Almesberger # Copyright 2010 Werner Almesberger # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # usage() { cat <&2 usage: $0 [options] top-dir top-schem [commit] outdir -c use cached Postscript files (from previous run, with -k) -k keep checked-out tree (for immediate reuse with -c) -r XxY image resolution (default: $RES) -S sanitize the KiCad profile -w points Postscript line width (default: $LINEWIDTH) EOF exit 1 } cache=false keep=false res= sanitize= width= while true; do case "$1" in -c) cache=true shift;; -k) keep=true shift;; -r) [ -z "$2" ] && usage res="-r $2" shift 2;; -S) sanitize=-S shift;; -w) [ -z "$2" ] && usage width="-r $2" shift 2;; -*) usage;; *) break;; esac done tmp=`pwd`/_gitsch2ppm eval outdir=\${$#} # with thanks to http://www.faqs.org/faqs/unix-faq/faq/part2/section-12.html argv= while [ $# -gt 1 ]; do argv="$argv \"$1\"" shift done eval set x "$argv" shift if ! $cache; then rm -rf "$tmp" rm -rf "$outdir" gitsch2ps $sanitize "$@" "$tmp" for n in "$tmp"/*.ps; do normalizeschps $width "$n" done fi mkdir -p "$outdir" for n in "$tmp"/*.ps; do schps2ppm $res "$n" "$outdir/`basename \"${n%.ps}.ppm\"`" done $keep || rm -rf "$tmp"