#!/bin/bash LANGS="cs de es fr fi it nl ru" DIST_FILES="autotimer2searchtimer.pl ChangeLog COPYING CREDITS FAQ HISTORY INSTALL LGPL.txt README README.translators REQUIREMENTS contrib convert.pl install.sh lib locale make.sh template uninstall.sh vdradmind vdradmind.pl vdradmind.pl.1" INSTALL_SH=./install.sh CVS2CL="./cvs2cl.pl" # get it at http://www.red-bean.com/cvs2cl/ TMPDIR=/tmp # Print usage information and exit # function Usage() { echo "Usage: $0 " echo echo "Available actions:" echo " cvs - always use this after a \"cvs update \" or \"cvs checkout\"" echo " install - install VDRAdmin-AM" echo " uninstall - uninstall VDRAdmin-AM" echo " po - convert .po files to .mo files" echo " dist - create distribution archive" echo " cl - create ChangeLog file." echo " check - check requirements" exit 1 } # Print error message and exit. # function Error() { [ "$1" ] && echo $* exit 1 } # Compile and install locales. # function do_po() { for PO in po/*.po do L=$(basename $PO .po) [ -d locale/$L/LC_MESSAGES/ ] || mkdir -p locale/$L/LC_MESSAGES/ msgfmt po/$L.po -o po/$L.mo install -m 644 po/$L.mo locale/$L/LC_MESSAGES/vdradmin.mo rm -f po/$L.mo done } # Setup things after CVS checkout or update. # function do_cvs() { # Create missing symbolic links [ -e uninstall.sh ] || ln -s install.sh uninstall.sh [ -e README ] || ln -s INSTALL README [ -e vdradmind ] || ln -s vdradmind.pl vdradmind } # Extract VDRAdmin-AM version from vdradmind.pl # function getVersion() { grep "^my \$VERSION" vdradmind.pl | sed -e 's/^[^\"]*\"\([^\"]*\)\".*$/\1/' } # Create tar.bz2 for distribution. # function do_dist() { local DIST_NAME=vdradmin-am-$(getVersion) mkdir -p $TMPDIR/$DIST_NAME cp -a $DIST_FILES $TMPDIR/$DIST_NAME mkdir -p $TMPDIR/$DIST_NAME/po cp -a po/*.po po/*.pot $TMPDIR/$DIST_NAME/po ( cd $TMPDIR tar --exclude CVS --exclude '.#*' --exclude '.nfs*' -cjf $DIST_NAME.tar.bz2 $DIST_NAME rm -rf $TMPDIR/$DIST_NAME ) mv $TMPDIR/$DIST_NAME.tar.bz2 . } # create ChangeLog file. # function do_cl() { [ -x $CVS2CL ] || Error "Missing $CVS2CL (http://www.red-bean.com/cvs2cl/)" $CVS2CL --FSF --separate-header --no-wrap --no-times --tagdates --log-opts "-d>2006-07-08" } # check requirements. # function do_check() { $INSTALL_SH -p } [ "$1" ] || Usage [ -x $INSTALL_SH ] || Error "$INSTALL_SH not found!" while [ $1 ] do case $1 in cvs) do_cvs ;; install) $INSTALL_SH -c ;; uninstall) $INSTALL_SH -u ;; po) do_po ;; local) do_cvs do_po ;; dist) do_cvs do_po do_cl do_dist ;; cl) do_cl; ;; check) do_check; ;; help|-h|--help) Usage; ;; *) Error "Unknown command \"$1\"" ;; esac shift done