-----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-----

Reply via email to