-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Wesley J. Landaker wrote on Mon, Mar 17, 2003 at 12:01:44PM -0700 :
>
> I've been doing this kind of thing a lot by hand. It would be awesome if
> it was supported by urpmi tools.
Agreed.
Kind of similar, I have a script that I use to maintain some personal
CVS rpms that I use (such as mutt). Here's the script that I use to do
it.
#!/bin/bash
# Set environment variables here. Their function should be obvious.
CVSLOCATION="-d :pserver:[EMAIL PROTECTED]:/cvsroot/slicker"
PROG="slicker"
VER="0.1"
SPECFILE="$HOME/RPM/SPECS/$PROG.spec"
UPLOADUSER=todd
UPLOADHOST=www.mrball.net
UPLOADDIR=/var/www/vhosts/downloads.mrball.net
increment_spec_version() {
# Set extension. Would normally be mdk, but set it to your initials
# so that it's clear that it's not an official Mandrake RPM.
EXT=tal
VERSION=$(awk '$0 ~ /%define release/ {print $3}' ${SPECFILE})
TARG=$(echo $VERSION | sed 's/0\.cvs\.//' | sed "s/${EXT}//")
LASTTARG=$(( $TARG - 1 ))
TARG=$(( $TARG + 1 ))
LASTVER="0.cvs.${LASTTARG}${EXT}"
NEWVER="0.cvs.${TARG}${EXT}"
echo "Using $NEWVER as current release version."
perl -pi -e "s/%define release $VERSION/%define release $NEWVER/" \
$SPECFILE
unset EXT
}
add_spec_changelog() {
LINE1="* $(date +"%a %b %d %Y") Todd Lyons <[EMAIL PROTECTED]> $VER-$NEWVER"
LINE2="- Updated cvs snapshot"
perl -we "open (SPEC, \"${SPECFILE}\");
while (<SPEC>) {
print $1;
/%changelog/ && print \"$LINE1\n$LINE2\n\n\";
}
close SPEC;" > $SPECFILE.$NEWVER
mv -f $SPECFILE $SPECFILE.$VERSION
mv -f $SPECFILE.$NEWVER $SPECFILE
[ -e $SPECFILE.$LASTVER ] && rm -f $SPECFILE.$LASTVER
}
echo
echo "Password is blank"
echo
unset GOTTEN
cd ~/src
[ ! -d $PROG ] \
&& [ -d $PROG-$VER ] \
&& mv $PROG-$VER $PROG \
&& GOTTEN=yes
[ ! -d ${PROG} ] \
&& mkdir $PROG
cvs $CVSLOCATION login
if [ -z $GOTTEN ]; then
cvs -z3 $CVSLOCATION co $PROG
else
cvs -z3 $CVSLOCATION update $PROG
fi
cvs $CVSLOCATION logout
cd $PROG
make distclean
cd ..
mv $PROG $PROG-$VER
tar -jcvf $PROG-$VER.tar.bz2 $PROG-$VER
mv -f $PROG-$VER.tar.bz2 ~/RPM/SOURCES
echo
echo -n "Build new $PROG? (y/n) "
read answer
case "$answer" in
y*|Y*)
increment_spec_version
add_spec_changelog
rpm -ba $SPECFILE
;;
*)
exit 0
;;
esac
# echo "Exiting before upload" && exit 0
unset answer
echo
echo -n "Upload to server? (y/n) "
read answer
case "$answer" in
y*|Y*)
NEWRPM=$(ls ~/RPM/RPMS/i586/$PROG-$VER* | tail -n 1)
NEWSRPM=$(ls ~/RPM/SRPMS/$PROG-$VER* | tail -n 1)
scp $NEWRPM \
[EMAIL PROTECTED]:$UPLOADDIR/Mandrake/9.0/RPMS
scp $NEWSRPM \
[EMAIL PROTECTED]:$UPLOADDIR/Mandrake/9.0/SRPMS
;;
*)
exit 0
;;
esac
- --
...and I will strike down upon thee with great vengeance and furious
anger, those who attempt to poison and destroy my binaries, and you
will know my name is root, when I lay my vengeance upon thee.
Mandrake Cooker Devel Version, Kernel 2.4.21-0.13mdk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+diJQlp7v05cW2woRAk7zAKCvyp9GxZ2vBIYojBdxrXZF67P5xQCdGMeB
woYjQ23H5hRcNG24j3Fam3Q=
=7Nae
-----END PGP SIGNATURE-----