#!/bin/bash
# a shell script to build a webminstats release
# integrated with subversion
# $Id$
#set -x
# user access right
# no need to work as root
# but sudo commands are necessary
LOG="${PWD}/make-wbm.log"
if [ -f $LOG ]
then
mv $LOG ${LOG}.old
fi
# check syntaxe
if [ $# -ne 0 ]
then
echo "syntaxe : $0"
echo "les variables d'env NOCW, NOPERLCRITIC, NOPERLTIDY permettent de sauter certaines phases"
exit
fi
# qui appelle ?
appel=$(basename $0)
if [ $appel = "make-wbm-test.sh" ]
then
export TEST=y
fi
# source code
SRC=sysstats
if [ ! -d $SRC ]
then
echo "$SRC is not a directory !"
exit
fi
# get current owner/group
export owner=$(ls -ld $SRC | awk '{print $3}')
export group=$(ls -ld $SRC | awk '{print $4}')
# get version
version=$(grep module_ver ${SRC}/module.info | cut -f2 -d=)
echo "version : $version"
# necessaire a cause du begin dans sysstats-lib
tempfile=/tmp/.webmin/webminstats.debug
if [ ! -w $tempfile ]
then
sudo touch $tempfile
sudo chmod 777 $tempfile
fi
# les droits des fichiers
modules/make_rights.sh ${SRC}
# verification de la validite du code
#export PERL5LIB=$SRC
~/projets/check_perl.sh ${SRC}/*.pl ${SRC}/*.cgi 2>&1 | tee $LOG
# verification que toutes les modifs ont ete validees par commit
out=$(git status | grep "modifié")
if [ -n "$out" ]
then
echo "il reste des fichiers modifies :"
echo "$out"
echo "-------------------------------------------"
if [ -z "$TEST" ]
then
# pour une version officielle on stoppe
# les versions de test peuvent continuer
exit
fi
fi
# traitement des modules
########################
# on refait les modules
cd modules
if [ -z "$TEST" ]
then
# stable
./make-modules.sh 2>&1 | tee -a $LOG
else
# test
./make-all-tar.sh 2>&1 | tee -a $LOG
fi
# test code retour et arret en cas de probleme
iret=$?
if [ $iret -ne 0 ]
then
exit
fi
cd ..
# menage
rm -f $SRC/modules/*.gz 2>/dev/null
# copie des modules
cp modules/*.tar.gz $SRC/modules
# traitement du code principal
##############################
if [ -z "$TEST" ]
then
# un coup de tag pour etre sur
# le tag sysstats est historique, mais noye dans les modules
# le tag webminstats est plus visible
git tag -a ${SRC}-${version} -m "tag $SRC for release $version"
git tag -a webminstats-${version} -m "tag webminstats for release $version"
fi
# fabrication du fichier wbm pour webmin
wbmfile=${SRC}-${version}.tgz
# on a juste besoin d'etre root ici
# change owner
sudo chown -R root:root $SRC
tar cfz ${wbmfile} --exclude .git $SRC
# restore owner
sudo chown -R ${owner}:${group} $SRC
# on fait les packages
########################
echo "packages (o/n) ?"
read a
if [ $a == 'o' ]
then
baserpm=~/rpmbuild
# rpm
./make_rpm.sh
# ajout du fichier spec dans le tgz
cp ${baserpm}/SPECS/wbm-sysstats.spec ${baserpm}/BUILD/sysstats/
cd ${baserpm}/BUILD/
tar cfz ~/projets/webminstats/${wbmfile} $SRC
cd -
# controle
tar tvfz ${wbmfile}
# signature du tgz
~/bin/gensign.sh ${wbmfile}
gpg --verify ${wbmfile}.sig ${wbmfile}
# debian
echo "pour fabriquer un package debian : make_deb.sh"
else
# menage
########
echo "menage (o/n) ?"
read a
if [ $a == 'o' ]
then
rm -f $SRC/modules/*.gz 2>/dev/null
fi
fi