diff options
Diffstat (limited to 'build')
-rwxr-xr-x | build | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/build b/build new file mode 100755 index 000000000000..ba642dfa2ca2 --- /dev/null +++ b/build @@ -0,0 +1,91 @@ +#!/bin/bash +output=font + +ttf=$(find /usr/share/fonts/TTF/ -name "DejaVu*") +if [ -z "$ttf" ]; then + echo "Make sure ttf-dejavu is installed" + exit -1 +fi + +if ! type fontforge >/dev/null; then + echo "Make sure 'fontforge' is installed" + exit -1; +fi + +textmap=(/usr/share/groff/*/font/devpdf/map/textmap) +if ! type afmtodit >/dev/null || ! [ -e "$textmap" ]; then + echo "Make sure 'groff' is installed" + exit -1; +fi + +if ! [ -d "$output" ]; then + mkdir $output + mkdir $output/devps + mkdir $output/devpdf +fi + +for name in $ttf; do + base_name=$(basename $name .ttf) + if ! fontforge 2>/dev/null -lang=ff -c "Open(\"$name\");Generate(\"$output/$base_name.pfa\");"; then + echo "Can't generate post-scipt font and afm description for $base_name" + echo -1 + fi + + if [[ "$base_name" =~ -BoldOblique$ ]]; then + font_name=${base_name/-BoldOblique/BI} + elif [[ "$base_name" =~ -ExtraLight$ ]]; then + font_name=${base_name/-ExtraLight/II} + elif [[ "$base_name" =~ -BoldItalic$ ]]; then + font_name=${base_name/-BoldItalic/BI} + elif [[ "$base_name" =~ -Bold$ ]]; then + font_name=${base_name/-Bold/B} + elif [[ "$base_name" =~ -Oblique$ ]]; then + font_name=${base_name/-Oblique/I} + elif [[ "$base_name" =~ -Italic$ ]]; then + font_name=${base_name/-Italic/I} + elif [[ "$base_name" =~ - ]]; then + echo "Can't gues font name from '$base_name'" + exit -1; + else + font_name=${base_name}R + fi + + if [[ "$font_name" =~ DejaVuSansMono ]]; then + font_name=${font_name/DejaVuSansMono/DeVuSaMo} + elif [[ "$font_name" =~ DejaVuSansCondensed ]]; then + font_name=${font_name/DejaVuSansCondensed/DeVuSaCo} + elif [[ "$font_name" =~ DejaVuSerifCondensed ]]; then + font_name=${font_name/DejaVuSerifCondensed/DeVuSeCo} + elif [[ "$font_name" =~ DejaVuSans ]]; then + font_name=${font_name/DejaVuSans/DeVuSa} + elif [[ "$font_name" =~ DejaVuSerif ]]; then + font_name=${font_name/DejaVuSerif/DeVuSe} + elif [[ "$font_name" =~ DejaVuMathTeXGyre ]]; then + font_name=${font_name/DejaVuMathTeXGyre/DeVuTex} + fi + + echo $font_name + + if ! afmtodit $output/$base_name.afm $textmap $font_name 2>/dev/null; then + echo "Can't generate groff font descritpion for $base_name" + echo -1 + fi + + internalname=`awk '/^internalname/{print $2;}' $font_name` + + if ! grep "\b$internalname\t" "$output/devpdf/download" &>/dev/null; then + echo -e "\t$internalname\t../$base_name.pfa" >> $output/devpdf/download + else + echo "Font with name '$internalname' already present in '$output/devpdf/download'" + fi + + if ! grep "\b$internalname\t" $output/devps/download &>/dev/null; then + echo -e "\t$internalname\t../$base_name.pfa" >> $output/devps/download + else + echo "Font with name '$internalname' already present in '$output/devps/download'" + fi + + rm $output/$base_name.afm + cp $font_name $output/devps/ + mv $font_name $output/devpdf/ +done |