diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ctable/inst |
Initial commit
Diffstat (limited to 'macros/latex/contrib/ctable/inst')
-rwxr-xr-x | macros/latex/contrib/ctable/inst | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/macros/latex/contrib/ctable/inst b/macros/latex/contrib/ctable/inst new file mode 100755 index 0000000000..9754480f51 --- /dev/null +++ b/macros/latex/contrib/ctable/inst @@ -0,0 +1,152 @@ +#!/bin/bash + dtxname=ctable + dtxtype=package + ext=sty + delete=($dtxname.$ext README.tex doc/\*.tex) + dtxversion=$(grep " v[0-9.]\+[a-z]\{0,1\} $dtxname $dtxtype" $dtxname.dtx |sed 's/.* v\([0-9.]\+[a-z]\{,1\}\) .*/\1/') +executables=(mk texlog_extract zip getopt pdfseparate pdflatex) + + version=1.00 + myname=$(basename $0) + +<<'DOC' += inst - install ctable + += Synopsis +inst [options] + +Without any options, inst installs ctable in the first writable +TEXMFMAIN, TEXMFLOCAL or TEXMFHOME tree. + +Options: +-h,--help print this help and exit +-H,--Help print full documentation via less and exit +-V,--version print version and exit + + += Description +inst must be run in its own directory (|./inst|) and then does the following: +- generates the documentation for isodoc, +- installs ctable in one of your TeX trees: TEXMFMAIN, TEXMFLOCAL or TEXMFHOME. + The first one writable by you will chosen. +- creates a zip file named |ctable-x.yy.zip| for upload to CTAN +- cleans up + += Author and copyright +Author Wybo Dekker +Email U{wybo@dekkerdocumenten.nl}{wybo@dekkerdocumenten.nl} +License Released under the U{www.gnu.org/copyleft/gpl.html}{GNU General Public License} +DOC + + die() { echo -e "$myname: $Err$@$Nor" 1>&2; exit 1; } + help() { sed -n '/^= Synopsis/,/^= /p' $0|sed '1s/.*/Usage:/;/^= /d'; exit; } +helpall() { sed -n '/^<<.DOC.$/,/^DOC$/p' $0|sed -n '1d;$d;p'|less; exit; } +version() { echo $version; exit; } + +Nor='\e[0m' # reset color ] +Err='\e[31;1m' # light red ] + +setdir() { # create installation directory + for i in MAIN LOCAL HOME; do + tree=$(kpsewhich --expand-var \$TEXMF$i) + test -w $tree && break + tree= + done + [[ -n $tree ]] || die "Could not find a writable TeX tree" + insttex=${tree}/tex/latex/$dtxname + instsrc=$tree/source/latex/$dtxname + instdoc=$tree/doc/latex/$dtxname + mkdir -p $insttex || die could not create $insttex + mkdir -p $instsrc || die could not create $instsrc + mkdir -p $instdoc || die could not create $instdoc +} + +testexecs() { # test presence of executables + for i in ${executables[*]}; do + type $i &> /dev/null || die executable $i not found + done +} + +readme() { # generate the README file +sed -n '/^%<\*readme>/,/^%<\/readme>/p + /\\changes{v'$dtxversion'}/,/^% }/p' $dtxname.dtx | +sed 's/^%//;s/\\\\$// + / Author:/i\ +Version:| '$dtxversion' + /<.readme>/d + /^ }/d + s/ \\changes.*/Changes in version '$dtxversion':/ + s/$\\Rightarrow\$/=>/g + s/\\textbackslash/\\/g + s/\\text\(sl\|it\){\([^}]\+\)}/\/\2\//g # \textsl{...} -> /.../ + s/{\([^}]*\)}/\1/g # keep last, removes all {...} + ' >README + grep "Changes in version" README >/dev/null || die changes not detected +} + +makeall() { + grep '%<\*install>' $dtxname.dtx >/dev/null && # for self-extracting dtx files + delete+=($dtxname.ins) || + echo y |tex $dtxname.ins >/dev/null + + # install any .ttf files + mkdir -p ~/.fonts + find doc -name '*.ttf' -exec cp {} ~/.fonts \; + fc-cache ~/.fonts + + readme # create the README file + + # compile all examples + cd doc + ln -sf ../$dtxname.sty || exit 1 # use the version to be installed + for i in [0-9][0-9]?; do + if [ ! -f $i.pdf -o ! -f s$i.pdf ]; then + ./doit || exit 1 + break + fi + done + cd .. + + mk --noprint --noview $dtxname.dtx && mk -c $dtxname.dtx # make $dtxname.pdf +} + +installall() { + # install and cleanup + echo installing in $tree + + rm -rf $insttex/* $instsrc/* $instdoc/* + find doc \( -type l -o -name '*.pdf' \) -delete + cp -f $dtxname.$ext $insttex + cp -a $dtxname.{ins,dtx} $instsrc + cp -a README inst $dtxname.pdf $instdoc + mktexlsr $tree 2>/dev/null + for i in ${delete[@]}; do rm -f $i; done + cd .. + zipfile=$dtxname/$dtxname-$dtxversion.zip + rm -f $zipfile + zip -rq $zipfile $dtxname/* -x $dtxname/test\* + cd $dtxname +} + +options=$(getopt \ + -n $myname \ + -o hHV \ + -l help,Help,version \ + -- "$@" +) || exit 1 +eval set -- "$options" +while [ $# -gt 0 ]; do + case $1 in + (-h|--help) help;; + (-H|--Help) helpall;; + (-V|--version) version;; + (--) shift; break;; + (*) break;; + esac +done +[[ -z $1 ]] || die No arguments expected + +testexecs +setdir +makeall +installall |