abuild/abump.in

87 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/bin/sh
# abump - bump pkgver in APKBUILDs
# Copyright (c) 2012 Natanael Copa <ncopa@alpinelinux.org>
#
# Distributed under GPL-2
#
program=${0##*/}
die() {
echo "$@" >&2
exit 1
}
# version bump a pkg
do_bump() {
local pkgname=${1%-[0-9]*}
local pkgver=${1#${pkgname}-}
APORTS=$HOME/aports
set -e
cd $APORTS/*/$pkgname || return 1
local section=${PWD%/*} upgrade="upgrade" cve=
section=${section##*/}
if [ -n "$cvelist" ]; then
upgrade="security upgrade"
cve=" ($cvelist)"
fi
msg="$section/$pkgname: $upgrade to ${pkgver}${cve}"
if [ -n "$fixes" ]; then
msg="$msg
fixes #${fixes#\#}
"
fi
echo "$msg"
( . ./APKBUILD; type package | grep -q function ) || die "package() missing"
sed -i -e "s/^pkgver=.*/pkgver=$pkgver/" \
-e "s/^pkgrel=.*/pkgrel=0/" \
APKBUILD
abuild $abuild_opts checksum all || exit 1
git add APKBUILD
git commit -m"$msg"
}
usage() {
echo "$program - utility to bump pkgver in APKBUILDs"
echo "usage: $program [-hR] [-s CVE-1,CVE-2,...] [-f ISSUE]"
echo ""
echo " -h show this help"
echo " -R run abuild with -R for recursive building"
echo " -k keep existing packages"
echo " -s security update"
echo " -f fixes ISSUE"
exit 0
}
keep=
recursive="-r"
while getopts "f:hkRs:" opt; do
case $opt in
f) fixes="${OPTARG}";;
h) usage;;
k) keep="-k";;
R) recursive="-R";;
s) cvelist="$OPTARG";;
esac
done
shift $(( $OPTIND - 1))
abuild_opts="$recursive $keep"
while [ $# -gt 0 ]; do
( do_bump "$1" ) || exit 1
shift
done