#!/bin/sh # abump - bump pkgver in APKBUILDs # Copyright (c) 2012 Natanael Copa # # Distributed under GPL-2 # abuild_ver=@VERSION@ datadir=@datadir@ if ! [ -f "$datadir/functions.sh" ]; then echo "$datadir/functions.sh: not found" >&2 exit 1 fi . "$datadir/functions.sh" # 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 message="$section/$pkgname: $upgrade to ${pkgver}${cve}" if [ -n "$fixes" ]; then message="$message fixes #${fixes#\#} " fi echo "$message" ( . ./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"$message" } usage() { cat >&2 <<__EOF__ $prog $abuild_ver - bump pkgver in APKBUILDs Usage: $prog [-s CVE-1,CVE-2,...] [-f ISSUE] [-R|--recursive] [-k|--keep] PKGNAME-1.2.3 ... Options: -s, --security CVE1,CVE-2,... Security update -f, --fixes ISSUE Fixes ISSUE -R, --recursive Run abuild with -R for recursive building -k, --keep Run abuild with -k to keep existing packages -q, --quiet -h, --help Show this help __EOF__ } keep= recursive="-r" cvelist= fixes= args=`getopt -o s:Rkqh --long security:,recursive,keep,quiet,help -n "$prog" -- "$@"` if [ $? -ne 0 ]; then usage exit 2 fi eval set -- "$args" while true; do case $1 in -s|--security) cvelist="$2"; shift;; -f|--fixes) fixes="$2"; shift;; -R|--recursive) recursive="-R";; -k|--keep) keep="-k";; -q|--quiet) quiet=1;; # suppresses msg -h|--help) usage; exit;; --) shift; break;; *) exit 1;; # getopt error esac shift done if [ $# -eq 0 ]; then usage exit 2 fi abuild_opts="$recursive $keep" while [ $# -gt 0 ]; do ( do_bump "$1" ) || exit 1 shift done