Игорь Пашев -

Oct. 12th, 2008

02:50 pm

Previous Entry Add to Memories Tell A Friend Next Entry

Скрипт на баше для создания PDF из Metapost.
Функциональность аналогична make.

Используется так: ./build file[.mp] [1 4 5]
это означает сделать картинки 1, 4, 5.
Если номера не указывать - сделает все картинки.


#!/bin/bash

set -e
set -u

MPOST='mpost -tex=latex -halt-on-error'
MPTOPDF='mptopdf'

mpfile=$1
base=$(echo "$mpfile" | sed 's,\.\w*$,,')
if ! echo $mpfile | grep '\.\w*$'; then
    mpfile="${mpfile}.mp"
fi
type='pdf'

shift

picnum="$@"
allpic=$(grep beginfig "$mpfile" | grep -o '[0-9]*')

if [ -z "$picnum" ]; then
    picnum=$allpic
fi

for pic in $picnum; do
    if ! echo "$allpic" | grep -w "$pic" > /dev/null; then
        echo "$pic: no such picture in $mpfile"
        exit 1
    fi

    if [ ! -f "${base}.${pic}" ] || [ "$mpfile" -nt "${base}.${pic}" ]; then
        echo "$mpfile -> ${base}.${pic}"
        $MPOST "$mpfile" > /dev/null
    fi

    if [ ! -f "${base}-${pic}.${type}" ] || [ "${base}.${pic}" -nt "${base}-${pic}.${type}" ]; then
        echo "${base}.${pic} -> ${base}-${pic}.${type}"
        $MPTOPDF "${base}.${pic}" > /dev/null
    fi
done
exit 0

Tags: , ,
(3 комментария | Оставить комментарий)

Comments:

[User Picture]
From:[info]beshenov
Date:October 29th, 2008 - 04:17 pm
(Link)
Скажите, а чем вы подсвечиваете исходники?
(Reply to this) (Thread)
[User Picture]
From:[info]igorpashev
Date:October 29th, 2008 - 04:34 pm
(Link)
kwrite -> Файл -> Экспорт в HTML

:-)
(Reply to this) (Parent) (Thread)
[User Picture]
From:[info]beshenov
Date:October 29th, 2008 - 04:38 pm
(Link)
Спасибо. Как раз хотел сказать, что цветовая схема напоминает KWrite :-)
(Reply to this) (Parent)