#!/bin/sh # # 2011 Nico Schottelius (nico-cdist at schottelius.org) # # This file is part of cdist. # # cdist is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # cdist is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # # # Push a directory to a target, both sides have the same name (i.e. explorers) # or # Pull a directory from a target, both sides have the same name (i.e. explorers) # # exit on any error #set -e version=$(git describe) # Manpage and HTML A2XM="a2x -f manpage --no-xmllint -a encoding=UTF-8" A2XH="a2x -f xhtml --no-xmllint -a encoding=UTF-8" # Developer webbase WEBDIR=$HOME/niconetz WEBBASE=$WEBDIR/software/cdist WEBMAN=$WEBBASE/man/$version WEBPAGE=${WEBBASE}.mdwn # Documentation MANDIR=docs/man MAN1DSTDIR=${MANDIR}/man1 MAN7DSTDIR=${MANDIR}/man7 SPEECHESDIR=docs/speeches case "$1" in man) set -e "$0" mangen "$0" mantype "$0" manbuild ;; manbuild) trap abort INT abort() { kill 0 } for section in 1 7; do for src in ${MANDIR}/man${section}/*.text; do manpage="${src%.text}.$section" if [ ! -f "$manpage" -o "$manpage" -ot "$src" ]; then echo "Compiling man page for $src" $A2XM "$src" fi htmlpage="${src%.text}.html" if [ ! -f "$htmlpage" -o "$htmlpage" -ot "$src" ]; then echo "Compiling html page for $src" $A2XH "$src" fi done done ;; mantype) for mansrc in conf/type/*/man.text; do dst="$(echo $mansrc | sed -e 's;conf/;cdist-;' -e 's;/;;' -e 's;/man;;' -e 's;^;docs/man/man7/;')" ln -sf "../../../$mansrc" "$dst" done ;; mangen) ${MANDIR}/cdist-reference.text.sh ;; release) ./docs/dev/releasechecklist ;; pypi) #$0 very-clean #$0 man $0 version-dist $0 sdist $0 version-dynamic ;; sdist) python3 setup.py sdist ;; speeches) cd "$SPEECHESDIR" for speech in *tex; do pdflatex "$speech" pdflatex "$speech" pdflatex "$speech" done ;; webmain) cp README ${WEBPAGE} cd ${WEBDIR} && git commit -m "cdist main update" ${WEBPAGE} cd ${WEBDIR} && make pub ;; web) cp README ${WEBPAGE} rm -rf ${WEBMAN} mkdir -p ${WEBMAN}/man1 ${WEBMAN}/man7 # old stuff # rm -rf ${WEBDIR}/${WEBBASE}/speeches && mkdir ${WEBDIR}/${WEBBASE}/speeches # cp ${SPEECHESDIR}/*.pdf ${WEBDIR}/${WEBBASE}/speeches # git describe > ${WEBDIR}/${WEBBASE}/man/VERSION cp ${MAN1DSTDIR}/*.html ${MAN1DSTDIR}/*.css ${WEBMAN}/man1 cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${WEBMAN}/man7 cd ${WEBDIR} && git add ${WEBBASE} cd ${WEBDIR} && git commit -m "cdist update" ${WEBBASE} ${WEBPAGE} cd ${WEBDIR} && make pub # Fix ikiwiki, which does not like symlinks for pseudo security ssh tee.schottelius.org \ "cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man && rm -f latest && ln -sf "$version" latest" ;; p|pu|pub) for remote in "" github sf ethz; do echo "Pushing to $remote" git push --mirror $remote done ;; clean) rm -f ${MAN7DSTDIR}/cdist-reference.text rm -f cdist/version.py rm -f MANIFEST find "${MANDIR}" -mindepth 2 -type l \ -o -name "*.1" \ -o -name "*.7" \ -o -name "*.html" \ -o -name "*.xml" \ | xargs rm -f find * -name __pycache__ | xargs rm -rf ;; very-clean) $0 clean rm -rf cache/ ;; test) shift # skip t if [ $# -lt 1 ]; then python3 -m cdist.test else python3 -m unittest "$@" fi ;; version) echo "VERSION=\"$version\"" > cdist/version.py ;; *) echo '' echo 'Welcome to cdist!' echo '' echo 'Here are the possible targets:' echo '' echo ' clean: Remove build stuff' echo ' man: Build manpages (requires Asciidoc)' echo ' test: Run tests' echo '' echo '' echo "Unknown target, \"$1\"" >&2 exit 1 ;; esac