106 lines
2.8 KiB
Plaintext
106 lines
2.8 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
if [ $# -eq 0 ]
|
||
|
then
|
||
|
echo "No arguments supplied"
|
||
|
fi
|
||
|
if [ $# -lt 4 ]
|
||
|
then
|
||
|
echo "Usage:
|
||
|
newbranch type versionOri versionDest pkgname
|
||
|
examples:
|
||
|
# newbranch contribs 9 10 smeserver-mycontrib
|
||
|
# newbranch sme 9 10 smeserver-package
|
||
|
This script is intended to create a new branch of an existing tree by copying the content of another branch in it. You can then alter the new branch content as you want.
|
||
|
If you need to create the tree for the package then you should use importNew script. It will also allow you to import a srpm content.
|
||
|
|
||
|
"
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
sme=$1
|
||
|
if [[ "$sme" != "sme" && "$sme" != "contribs" ]]
|
||
|
then
|
||
|
echo "wrong first parameter should be either 'sme' or 'contribs'"
|
||
|
exit
|
||
|
fi
|
||
|
re='^[0-9]+$'
|
||
|
if ! [[ $2 =~ $re ]] ; then
|
||
|
echo "Error: Second argument should be a version number (e.g.: 9) with an existing branch (e.g.: sme9)." >&2; exit 1
|
||
|
fi
|
||
|
if ! [[ $3 =~ $re ]] ; then
|
||
|
echo "Error: Third argument should be a version number (e.g.: 10) needing a new branch (e.g.: sme10)." >&2; exit 1
|
||
|
fi
|
||
|
#verd=$(($2 + 1));# rem we might want to go down too
|
||
|
vero=$2
|
||
|
verd=$3
|
||
|
pkgname=$4
|
||
|
curpwd=`pwd`
|
||
|
packageroot='smecontribs'
|
||
|
if [[ "$sme" == "sme" ]]
|
||
|
then
|
||
|
packageroot='smeserver'
|
||
|
fi
|
||
|
|
||
|
cd ~/$packageroot/CVSROOT
|
||
|
cvs -Q update -dPA 1>/dev/null
|
||
|
grep -Eq "^$pkgname\s+rpms/$pkgnames.*" ~/$packageroot/CVSROOT/modules
|
||
|
if (( $? != 0 ))
|
||
|
then
|
||
|
echo "Package $pkgname does not exists in modules, please create the proper tree in cvs and add it to modules. You might consider using importNew script."
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
|
||
|
# if does not exist we test if it is in cvs
|
||
|
# if not we fail
|
||
|
if [ ! -d ~/$packageroot/rpms/$pkgname ]
|
||
|
then
|
||
|
cd ~/$packageroot/rpms
|
||
|
# rem to test
|
||
|
cvs -Q -z3 -d:ext:shell.koozali.org:/cvs/$packageroot co -P $pkgname #1>/dev/null
|
||
|
|
||
|
if [ ! -d ~/$packageroot/rpms/$pkgname ]
|
||
|
then
|
||
|
echo "no such module $pkgname"
|
||
|
exho "use instead importNew script"
|
||
|
exit;
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
cd ~/$packageroot/rpms;
|
||
|
cvs update -dPA $pkgname >/dev/null
|
||
|
|
||
|
if [ ! -d ~/$packageroot/rpms/$pkgname/$sme$vero ]
|
||
|
then
|
||
|
echo "Branch $sme$vero does not exist. Nothing to do.";
|
||
|
exit;
|
||
|
fi
|
||
|
|
||
|
if [ -d ~/$packageroot/rpms/$pkgname/$sme$verd ]
|
||
|
then
|
||
|
echo "Branch $sme$verd exists. Nothing to do.";
|
||
|
else
|
||
|
cd ~/$packageroot/rpms
|
||
|
rm -rf ~/$packageroot/rpms/$pkgname
|
||
|
cd ~/$packageroot/rpms
|
||
|
cvs -Q co $pkgname
|
||
|
cd $pkgname
|
||
|
# then you can copy
|
||
|
cp -a $sme$vero $sme$verd
|
||
|
rm -rf $sme$verd/CVS
|
||
|
cvs add $sme$verd
|
||
|
cd $sme$verd
|
||
|
find ./ -name CVS -prune -o -print | xargs cvs add
|
||
|
cvs commit -m 'Initial import'
|
||
|
echo "# then you have to do:"
|
||
|
echo "cd ~/$packageroot/rpms/$pkgname/$sme$verd/"
|
||
|
echo "make local"
|
||
|
echo "make tag ;make build"
|
||
|
echo "# Alternatively you can do:"
|
||
|
echo "# make mockbuild"
|
||
|
echo "# make tag ;make build"
|
||
|
fi
|
||
|
|
||
|
|