Michael Cummings wrote:[Tue Jun 07 2005, 12:49:21PM EDT]
> HA! Oh man, I needed a good chuckle. cvs log is about the only
> nearly reliable thing I have found sometimes - seems folks that
> don't like to use metadata.xml when commiting a random package also
> avoid using ChangeLogs. Go figure.

I guess I haven't run into as much of that as you have.  I have
a couple of functions that make this easy for me.  Here is the usage
if anybody is interested:

    ek - short for ekeyword

    er - run echangelog, then call rc automatically

    rc - repoman commit with the most recent message pulled from the
         ChangeLog

So in general I do something like this:

    $ ek alpha ia64 blah.ebuild
    $ er "stable on alpha, ia64"

If repoman doesn't allow me to commit for one reason or another, I'll
fix the problem, then simply run "rc" to retry the commit with the
same message.

Here are the function definitions:

  # ek: ekeyword
  alias ek=ekeyword

  # echangelog and repoman combined
  er() {
    echangelog ${1:+"$*"} || return 1
    rc
  }

  # repoman commit with the message from the ChangeLog
  rc() { 
    declare msg out

    if [[ -n $* ]]; then
      msg="$*"
      echo "Using msg from command-line" >&2
    else
      msg=$(perl <ChangeLog -0777 -pe \
        's/^.*?\n  \d{2} \w{3} \d{4};.*?:\n//s || exit 1; # trim top
         s/\n(?:\*|  \d{2} \w{3} \d{4};).*//s;            # trim bottom
         s/^\s*//; s/\s*$//; s/^(?:  |\t)//gm;            # fix spacing
        ')
      if [[ $? != 0 || -z $msg ]]; then
        echo "couldn't parse message from ChangeLog" >&2
        return 1
      fi
      echo "Parsed msg from ChangeLog" >&2
    fi

    echo "----------" >&2
    echo "$msg" >&2
    echo "----------" >&2

    repoman commit -m "$msg" || return 1

    if [[ -x /usr/bin/eviewcvs ]]; then
      local f entry=$(perl -00ne '/^  \d/ and print, last' ChangeLog)
      entry=${entry%%:*}
      entry=${entry##*>}
      entry=${entry//,/ }
      for f in $entry; do
        [[ $f == -* ]] && continue
        echo "${f#+}"
      done | xargs eviewcvs
    fi
  }

Regards,
Aron

--
Aron Griffis
Gentoo Linux Developer

Attachment: pgpbPWn4KXVtk.pgp
Description: PGP signature

Reply via email to