summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/ebump/ebump')
-rwxr-xr-xtrunk/src/ebump/ebump356
1 files changed, 0 insertions, 356 deletions
diff --git a/trunk/src/ebump/ebump b/trunk/src/ebump/ebump
deleted file mode 100755
index 2623a28..0000000
--- a/trunk/src/ebump/ebump
+++ /dev/null
@@ -1,356 +0,0 @@
-#! /bin/sh
-#
-# Copyright (c) 2004 Karl Trygve Kalleberg <karltk@gentoo.org>
-# Copyright (c) Gentoo Technologies, Inc.
-# Licensed under the GNU General Public License, version 2
-#
-# Maintainer: Karl Trygve Kalleberg <karltk@gentoo.org>
-
-__version__="0.1.0"
-__author__="Karl Trygve Kalleberg"
-__email__="<karltk@gentoo.org>"
-__description__="Ebuild version bumping tool"
-
-
-
-die() {
- echo $1 > /dev/stderr
- exit -1
-}
-
-einfo() {
- if [ ${opt_verbosity} -gt 2 ] ; then
- echo $*
- fi
-}
-
-print_version() {
- echo "${__description__}, v${__version__}"
- echo "Copyright (c) 2004 ${__author__} ${__email__}"
- echo "Copyright (c) 2004 Gentoo Technologies, Inc."
- echo "Licensed under the GNU General Public License, version 2"
-}
-
-print_usage() {
- echo "Usage: ebump <options> foo<.ebuild>"
- echo "Ebuild version bumping tool, v${__version__}"
- echo " -V|--version show version info"
- echo " -v|--verbose increase verbosity"
- echo " -q|--quiet turn off output"
- echo " -C|--no-cvs do not add to CVS"
- echo " -m|--message append message to ChangeLog"
- echo " -d|--delete-old delete previous revision from CVS (DANGEROUS!)"
-}
-
-#
-# Load options from /etc/gentoolkit/ebump.conf and ${HOME}/.gentoo/ebump.conf
-# Home directory file takes precedence.
-#
-load_options() {
-
- # FIXME: Sourcing config files like this is really a bad idea; users may
- # easily override any function in this program inside his config files.
-
- if [ -f /etc/gentoolkit/ebump.conf ] ; then
- . /etc/gentoolkit/ebump.conf
- fi
- if [ -f ${HOME}/.gentoo/gentool-env ] ; then
- . ${HOME}/.gentoo/gentool-env
- fi
- if [ -f ${HOME}/.gentoo/ebump.conf ] ; then
- . ${HOME}/.gentoo/ebump.conf
- fi
-}
-
-#
-# Find closes ebuild to ${1}, if any
-#
-find_ebuild() {
- f=${1}
-
- if [ -f ${1} ] ; then
- echo ${1}
- fi
-
- if [ -f ${1}.ebuild ] ; then
- echo ${1}
- fi
-}
-
-#
-# splitname (version|name|revision) package-name-version-revision
-#
-splitname() {
- case $1 in
- version)
- echo ${2} | sed -r "s/.*-([0-9].*)/\1/"
- ;;
- name)
- name=$(echo ${2} | sed -r "s/(.*)-[0-9].*/\1/")
- if [ ${name} == ${2} ] ; then
- if [ $(echo ${2} | grep "^[0-9].*") ] ; then
- # The filename starts with a version number, thus it has no
- # name
- name=""
- else
- # The filename doesn't have a recognizeable version number;
- # everything is a name
- name=${2}
- fi
- fi
- echo ${name}
- ;;
- revision)
- rev=$(echo ${2} | sed -r "s/.*-r([0-9][0-9]*)/\1/")
- if [ ${rev} == ${2} ] ; then
- rev=0
- fi
- echo ${rev}
- ;;
- vernorev)
- ver=$(echo ${2} | sed -r "s/.*-([0-9].*)-r[0-9]+/\1/")
- if [ ${ver} == ${2} ] ; then
- ver=$(echo ${2} | sed -r "s/.*-([0-9].*)/\1/")
- fi
- echo ${ver}
- ;;
- *)
- echo
- esac
-}
-
-process_ebuild() {
- ebuild_arg=${1}
-
- # Files to add to CVS
- addfiles=""
- # Files to remove from CVS
- delfiles=""
-
- if [ -z ${ebuild_arg} ] ; then
- print_usage
- exit
- fi
-
- #
- # Try to find a matching ebuild
- #
-
- ebuild_name=$(find_ebuild ${ebuild_arg})
- if [ -z ${ebuild_name} ] ; then
- die "Could not find ${ebuild_arg}"
- fi
- einfo "Processing ebuild ${ebuild_name}"
-
- #
- # Bump revision suffix (or add one)
- #
-
- PF=$(basename ${ebuild_name} .ebuild)
- PN=$(splitname name ${PF})
- PV=$(splitname version ${PF})
- rev=$(splitname revision ${PF})
- PV_norev=$(splitname vernorev ${PF})
- newPF=${PN}-${PV_norev}-r$[rev+1]
-
-# echo $PF / $PN / $PV / $rev / $PV_norev / $newPF
-
- einfo "Bumped ${PF}.ebuild to ${newPF}.ebuild"
-
- cp ${PF}.ebuild ${newPF}.ebuild
-
- addfiles="${addfiles} ${newPF}.ebuild"
- delfiles="${delfiles} ${PF}.ebuild"
-
- #
- # (Optional) Bump relevant files in files/
- #
-
- if [ "${opt_bump_auxfiles}" == "y" ] ; then
-
- # Gather list of auxiliary files in files/ that has a versioned
- # filename, where the version matches our current version.
-
- bumplist=""
- for x in $(echo files/*) ; do
- if [ ! -z $(echo $x | grep "${PV}$") ] ; then
- bumplist="${bumplist} ${x}"
- fi
- done
-
- # Bump version of all matches
-
- for x in ${bumplist} ; do
-
- bn=$(basename ${x})
- dn=$(dirname ${x})
-
- PN=$(splitname name ${bn})
- PV=$(splitname version ${bn})
- rev=$(splitname revision ${bn})
- PV_norev=$(splitname vernorev ${bn})
-
-# echo $PN / ${PV_norev} / ${rev}
-
- # Special case for when we have no name part; filename
- # is just a version number
- if [ -z "${PN}" ] ; then
- newbn=${PV_norev}-r$[rev+1]
- else
- newbn=${PN}-${PV_norev}-r$[rev+1]
- fi
-
- if [ -d ${dn}/${bn} ] ; then
- if [ -e ${dn}/${newbn} ] ; then
- echo "Directory ${dn}/${newbn} exists, not copying" > /dev/stderr
- else
- cp -a ${dn}/${bn} ${dn}/${newbn}
- find ${dn}/${newbn} -name CVS | xargs rm -rf
- fi
- else
- cp ${dn}/${bn} ${dn}/${newbn}
- fi
-
- addfiles="${addfiles} ${dn}/${newbn}"
- delfiles="${delfiles} ${dn}/${bn}"
-
- einfo "Bumped ${dn}/${bn} to ${dn}/${newbn}"
- done
- fi
-
-# echo "addfiles ${addfiles}"
-# echo "delfiles ${delfiles}"
-
- filelist="${addfiles}"
- #
- # (Optional) Add ChangeLog entry
- #
-
- if [ "${opt_add_changelog}" == "y" ] &&
- [ -f ChangeLog ] ; then
-
- # Add ChangeLog entry
-
- curdate=$(LC_TIME="us" date +"%02d %b %Y")
- cp ChangeLog ChangeLog.old
- (
- # Use header (four first lines) of the old ChangeLog
- head -n 4 ChangeLog.old
-
- # Write new entry
-
- echo "*${newPF} (${curdate})"
- echo
- echo " ${curdate}; ${AUTHORNAME} <${AUTHOREMAIL}> ${filelist}"
-
- # If we don't have a commit message, add comment
- if [ -z "${opt_commitmessage}" ] ; then
- echo " # INSERT ENTRY HERE"
- if [ "${opt_delete_old}" == "y" ] && [ ! -z "${delfiles}" ] ; then
- echo " Removed ${delfiles}."
- fi
- echo
- else
- echo " ${opt_commitmessage}"
- echo
- fi
-
- # Write tail of old ChangeLog
- nl=$(wc -l ChangeLog.old | sed -r "s/^([0-9]+).*/\1/")
- tail -n $[nl - 4] ChangeLog.old
- ) > ChangeLog
- rm ChangeLog.old
-
- einfo "Added ChangeLog entry"
- fi
-
- #
- # (Optional) Add CVS entry for all new files
- #
-
- if [ "${opt_add_cvs}" == "y" ] ; then
-
- # Add all new files to CVS
- for x in ${addfiles} ; do
- if [ -d ${x} ] ; then
- find ${x} | xargs echo cvs add
- else
- cvs add ${x}
- fi
- done
- einfo "Added ${addfiles} to CVS"
- fi
-
-
- #
- # (Optional) Delete previous entry
- #
-
- if [ "${opt_delete_old}" == "y" ] ; then
-
- for x in ${delfiles} ; do
- cvs remove -f ${x}
- done
- einfo "Removed ${delfiles} from CVS"
- fi
-
-}
-
-original_params=${#}
-
-#
-# Global options
-#
-opt_verbosity=1
-opt_warn_on_delete=y
-opt_add_changelog=y
-opt_add_cvs=y
-opt_bump_auxfiles=y
-opt_delete_old=n
-opt_commitmessage=""
-
-load_options
-
-skip=0
-while [ ${#} -gt 0 ] ; do
- arg=${1}
- shift
- if [ ${skip} -gt 0 ] ; then
- skip=$[skip-1]
- else
- case ${arg} in
- -h|--help)
- print_usage
- exit 0
- ;;
- -m|--message)
- opt_commitmessage="${1}"
- skip=1
- ;;
- -C|--no-cvs)
- opt_add_cvs=n
- ;;
- -V|--version)
- print_version
- exit
- ;;
- -v|--verbose)
- opt_verbosity=$[opt_verbosity + 1]
- ;;
- -q|--quiet)
- opt_verbosity=0
- ;;
- -d|--delete-old)
- opt_delete_old=y
- ;;
- *)
- ebuild_arg=${arg}
- ;;
- esac
- fi
-done
-
-process_ebuild ${ebuild_arg}
-
-# TODO:
-# - put cli parser into separate functions