ymetapost/gen

68 lines
1.9 KiB
Text
Raw Normal View History

2013-10-01 11:17:56 +00:00
#!/usr/bin/env zsh
function err(){ print -- $@ >&2; exit 1 }
# scriptdir is the directory of the current executable
if [[ ${0[0]} = '/' ]]; then
scriptdir="${0:h}"
else
scriptdir="$PWD/${0:h}"
fi
# the list of mp files without argument all file in the current tree
typeset -a fics
if (($#<1)); then
2018-09-17 20:55:11 +00:00
err "Usage: ${0:t} FILES"
2013-10-01 11:17:56 +00:00
else
2018-09-17 20:55:11 +00:00
fics=( $* );
2013-10-01 11:17:56 +00:00
fi
(( ${#fics} == 0 )) && err "No .mp files into $scriptdir"
2018-09-17 20:55:11 +00:00
# the tmp directory where compilation occurs with a lot of temporary files
tmpdir=/tmp/mp
[[ ! -d $tmpdir ]] && mkdir -p $tmpdir
2013-10-01 11:17:56 +00:00
2018-09-17 20:55:11 +00:00
for fic in $fics; do
ficname=${fic:t}
tmp=$tmpdir/${ficname:r}-tmp.mp
eps=$tmpdir/${ficname:r}-tmp.1
2013-10-01 11:17:56 +00:00
png=${fic:r}.png
2018-09-17 20:55:11 +00:00
old=$tmpdir/${ficname:r}.old
2013-10-01 11:17:56 +00:00
{
2018-09-17 20:55:11 +00:00
echo -n >&2 "$png"
2013-10-01 11:17:56 +00:00
cat $scriptdir/graph.mp
echo 'beginfig(1)'
echo ' drawoptions (withcolor base01);'
cat $fic
echo 'endfig;'
echo 'bye;'
} | sed 's/base00/baseZeroZero/g' \
| sed 's/base01/baseZeroOne/g' \
| sed 's/base02/baseZeroTwo/g' \
| sed 's/base03/baseZeroThree/g' \
| sed 's/base0/baseZero/g' \
| sed 's/base1/baseOne/g' \
| sed 's/base2/baseTwo/g' \
| sed 's/base3/baseThree/g' \
| sed 's/red/s_red/g' \
| sed 's/blue/s_blue/g' \
| sed 's/green/s_green/g' > $tmp
2018-09-17 20:55:11 +00:00
[[ -e $old ]] && diff $tmp $old >/dev/null && { echo " unchanged (clean $tmpdir if you want to force rebuild)"; continue }
2013-10-01 11:17:56 +00:00
dpi=$(grep '% DPI' $tmp | awk '{print $3}')
[[ $dpi = "" ]] && dpi=600
# addshadow="'(' +clone -background black -shadow 90x4+0+1 ')' +swap -background none -layers merge +repage"
addshadow=""
reducesize=" -colors 254 -quality 75"
cmd="convert -colorspace rgb -density $((4*dpi)) $eps -resize 25% $addshadow $reducesize $png"
2018-09-17 20:55:11 +00:00
cd $tmpdir && \
mpost --tex=latex ${tmp:t} >/dev/null && \
cd $OLDPWD && \
2013-10-01 11:17:56 +00:00
eval $cmd && \
\cp -f $tmp $old && \
2018-09-17 20:55:11 +00:00
echo "updated" && \
2013-10-01 11:17:56 +00:00
done