1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-12-01 21:20:37 +02:00

Sheet names now link to the sheet's PDF.

- scripts/normalizeschps: by default, don't change the linewidth
- scripts/schhist2web: cache historical Postscript files in directories
  ps_*
- scripts/schps2pdf: new script to convert eeschema Postscript to PDF
- scripts/schhist2web: link the file name in the title to the curent
  PDF of the respective sheet
- scripts/Makefile: changed lazy wildcard thum* to thumb_* and diff* to
  diff_*
- scripts/Makefile: upload also pdf_*
This commit is contained in:
Werner Almesberger 2010-08-30 03:14:07 -03:00
parent 800577353e
commit 337f13a0df
4 changed files with 67 additions and 12 deletions

View File

@ -1,6 +1,6 @@
SHELL = /bin/bash SHELL = /bin/bash
UPLOAD = {index.html,unchanged.png,thum*,diff*} UPLOAD = {index.html,unchanged.png,thumb_*,diff_*,pdf_*}
DEST = werner@host:/home/httpd/almesberger/misc/ben/ DEST = werner@host:/home/httpd/almesberger/misc/ben/
RSYNC = rsync -a --progress RSYNC = rsync -a --progress

View File

@ -12,24 +12,22 @@
# #
LINEWIDTH=120
usage() usage()
{ {
cat <<EOF 1>&2 cat <<EOF 1>&2
usage: $0 [options] [in.ps [out.ps]] usage: $0 [options] [in.ps [out.ps]]
-w points Postscript line width (default: $LINEWIDTH) -w points Postscript line width (default: use the original)
EOF EOF
exit 1 exit 1
} }
width=
while true; do while true; do
case "$1" in case "$1" in
-w) [ -z "$2" ] && usage -w) [ -z "$2" ] && usage
LINEWIDTH="$2" width="$2"
shift 2;; shift 2;;
-*) -*)
usage;; usage;;
@ -45,8 +43,9 @@ out=${2:-/dev/stdout}
sed ' sed '
1c%!PS-Adobe-3.0\ 1c%!PS-Adobe-3.0\
currentdict /DidNormalize known not { \ currentdict /DidNormalize known not { \
/setlinewidth { '$LINEWIDTH' 2 copy lt { exch } if pop \ '"`[ -z \"$width\" ] ||
setlinewidth } bind def \ echo \"/setlinewidth { $width 2 copy lt { exch } if pop \
setlinewidth } bind def \"`"' \
/rectfill { rectstroke } bind def \ /rectfill { rectstroke } bind def \
/DidNormalize true def \ /DidNormalize true def \
} if \ } if \

View File

@ -193,8 +193,8 @@ for n in $first `cd "$dir" && git rev-list --reverse $first..HEAD`; do
tmp=`pwd`/_schhist2web tmp=`pwd`/_schhist2web
trap "rm -rf \"$cache/ppm_$n\" \"$cache/fat_$n\" \"$tmp\"" 0 trap "rm -rf \"$cache/ppm_$n\" \"$cache/fat_$n\" \"$tmp\"" 0
if [ ! -d "$cache/ppm_$n" ]; then if [ ! -d "$cache/ppm_$n" ]; then
rm -rf "$cache/ppm_$n" "$cache/fat_$n" rm -rf "$cache/ppm_$n" "$cache/fat_$n" "$cache/ps_$n"
mkdir "$cache/ppm_$n" "$cache/fat_$n" mkdir "$cache/ppm_$n" "$cache/fat_$n" "$cache/ps_$n"
# #
# potential optimization here: remember Postscript files from previous # potential optimization here: remember Postscript files from previous
# run (or their md5sum) and check if they have changed. If not, skip # run (or their md5sum) and check if they have changed. If not, skip
@ -204,9 +204,11 @@ for n in $first `cd "$dir" && git rev-list --reverse $first..HEAD`; do
gitsch2ps $sanitize "$dir" "$schname" $n "$tmp" || exit gitsch2ps $sanitize "$dir" "$schname" $n "$tmp" || exit
for m in "$tmp"/*.ps; do for m in "$tmp"/*.ps; do
ppm="$cache/ppm_$n/`basename "$m" .ps`.ppm" ppm="$cache/ppm_$n/`basename "$m" .ps`.ppm"
normalizeschps "$m" | schps2ppm - "$ppm" || exit normalizeschps -w 120 "$m" | schps2ppm - "$ppm" || exit
ppm="$cache/fat_$n/`basename "$m" .ps`.ppm" ppm="$cache/fat_$n/`basename "$m" .ps`.ppm"
normalizeschps -w 500 "$m" | schps2ppm - "$ppm" || exit normalizeschps -w 500 "$m" | schps2ppm - "$ppm" || exit
ps="$cache/ps_$n/`basename "$m"`"
normalizeschps "$m" "$ps" || exit
done done
rm -rf "$tmp" rm -rf "$tmp"
fi fi
@ -257,7 +259,9 @@ EOF
<TR bgcolor="$FNAME_COLOR"> <TR bgcolor="$FNAME_COLOR">
EOF EOF
while read m; do while read m; do
echo "<TD><B>$m</B>" mkdir -p "$out/pdf_$head"
schps2pdf -o "$out/pdf_$head/$m.pdf" "$cache/ps_$head/$m.ps" || exit
echo "<TD><A href="pdf_$head/$m.pdf"><B>$m</B></A>"
done < <(ls -1 "$out/names") done < <(ls -1 "$out/names")
} >"$index" } >"$index"

52
scripts/schps2pdf Executable file
View File

@ -0,0 +1,52 @@
#!/bin/bash
#
# schps2pdf - Generate PDF files from Eeschema Postscript
#
# 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 <<EOF 1>&2
usage: $0 [options] [-o file.pdf] [file.ps ...]
-t prefix make a table of content. Remove prefix from file names.
EOF
exit 1
}
toc=false
out=-
while true; do
case "$1" in
-o) [ -z "$2" ] && usage
out=$2
shift 2;;
-t) [ -z "$2" ] && usage
toc=true
prefix="$1"
shift 2;;
-*)
usage;;
*)
break;;
esac
done
in=${1:--}
shift
cat "$in" |
eval gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=\""$out\"" -f \
`for n in "$in" "$@"; do \
name=\`basename "$n" .ps\` \
echo "<($toc && echo '[ /Title (${name#$prefix}) /OUT pdfmark';
cat \"$n\";)"; done`