+++ /dev/null
-#!/bin/bash
-
-# faust2mathviewer.sh
-#
-# Generate a full Faust documentation, in a '*-mdoc' top directory
-# and open the resulting pdf file
-#
-# Karim Barkati
-# November 2009
-#
-# Warning : this script requires several things to be installed :
-# - svg2pdf, from the Cairo 2D graphics library;
-# - pdflatex, to compile the tex file;
-# - breqn, a latex package to break equations;
-# - faust ;-)
-
-
-# Usage.
-print_usage()
-{
- echo Usage : args of faust2mathviewer should be a \'.dsp\' file, or a list of \'.dsp\' files.
-}
-
-
-# Visit each directory transmited as argument,
-# in order to convert .svg files into pdf.
-# This function uses the svg2pdf command,
-# from the Cairo 2D graphics library.
-convert_svgdirs2pdf()
-{
- for DIR in $@ ; do
- if [ -d $DIR ] ; then
- echo "cd " $DIR
- cd $DIR
- FILES=`ls | grep -E "\.svg"`
- for SRC in $FILES ; do
- echo ' --> '$SRC
- PDF=${SRC%.svg}'.pdf'
- svg2pdf "$SRC" "$PDF"
- echo ' <-- '$PDF
- done
- cd -
- else
- echo error : \'$DIR\' is not a directory.
- fi
- done
-}
-
-
-# Main loop of this script :
-# 1. Compile `faust -mdoc` to generate the TeX file and SVG block-diagrams.
-# 2. Move to the "${FILEPATH%.dsp}-mdoc" directory created by faust.
-# 3. Convert SVG files into PDF files recursively (with svg2pdf).
-# 4. Compile pdflatex twice (including the top-level block-diagram).
-# 5. Copy some important files where needed.
-
-if [[ $(uname) == Darwin ]]; then
- OPEN=open
- export PATH="/usr/texbin:$PATH"
-else
- OPEN=xdg-open
-fi
-
-for FILEPATH in $@ ; do
- if [ -f $FILEPATH ] ; then
- FILENAME=`basename $FILEPATH` &&
- case $FILENAME in
- *.dsp )
- faust -o ${FILEPATH%.dsp}.cpp --mathdoc $FILEPATH &&
- cd ${FILEPATH%.dsp}-mdoc/ &&
- cd svg && convert_svgdirs2pdf svg-* && cd .. &&
- cd tex && pdflatex ${FILENAME%.dsp}.tex && pdflatex ${FILENAME%.dsp}.tex && cd .. &&
- mkdir -p pdf && cp tex/${FILENAME%.dsp}.pdf pdf &&
- mkdir -p cpp && mv ../${FILENAME%.dsp}.cpp cpp &&
- ${OPEN} tex/${FILENAME%.dsp}.pdf &&
- cd ..
- ;;
- * )
- echo error : \'$FILENAME\' does not have a \'.dsp\' extension.
- exit 2
- ;;
- esac
- else
- print_usage
- exit 1
- fi
-done
-exit 0
-