#!/bin/sh -e # xbump PKGNAME [git commit options] - git commit a new package or package update cd $(xdistdir) pkg=$1; shift [ -z "$pkg" ] && pkg=$(basename $PWD) version=$(./xbps-src show "$pkg" | sed -n '/^version/s/[^:]*:[\t]*//p') if [ -z "$version" ]; then echo cannot parse version exit 1 fi spkpattern=$(xsubpkg "$pkg") shlibs=$(git diff common/shlibs | grep "^+[^+]" | \ sed "s/^+[^ ]\+ \(.*\)-[^-]\+_[0-9]\+$/\1/") if [ -n "$(echo "$shlibs" | grep -vFx "$spkpattern")" ]; then echo "common/shlibs contains uncommitted changes for other packages." 2>&1 exit 1 elif [ -n "$shlibs" ]; then git add common/shlibs dirs=common/shlibs fi dirs="$dirs $(./xbps-src show "$pkg" | sed -n '/^\(pkgname\|subpackage\)/s/[^:]*:[\t]*/srcpkgs\//p')" git add $dirs if git diff --quiet --cached --diff-filter=A -- srcpkgs/"$pkg"/template; then msg="$pkg: update to $version." else msg="New package: $pkg-$version" fi git commit -m "$msg" "$@" $dirs