summaryrefslogtreecommitdiff
path: root/src/lib/util/pkgbuild.sh
blob: ebf8e5f876b4ec71048136e7d454018b6e223c60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/hint/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later

[[ -z ${DEVTOOLS_INCLUDE_UTIL_PKGBUILD_SH:-} ]] || return 0
DEVTOOLS_INCLUDE_UTIL_PKGBUILD_SH=1

_DEVTOOLS_LIBRARY_DIR=${_DEVTOOLS_LIBRARY_DIR:-@pkgdatadir@}

source /usr/share/makepkg/util/message.sh

set -e


# set the pkgver variable in a PKGBUILD
# assumes that the pkgbuild is sourced to detect the presence of a pkgver function
pkgbuild_set_pkgver() {
	local new_pkgver=$1
	local pkgver=${pkgver}

	if [[ $(type -t pkgver) == function ]]; then
		# TODO: check if die or warn, if we provide _commit _gitcommit setter maybe?
		warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function'
	fi

	if ! grep --extended-regexp --quiet --max-count=1 "^pkgver=${pkgver}$" PKGBUILD; then
		die "Non-standard pkgver declaration"
	fi
	sed --regexp-extended "s|^(pkgver=)${pkgver}$|\1${new_pkgver}|g" --in-place PKGBUILD
}

# set the pkgrel variable in a PKGBUILD
# assumes that the pkgbuild is sourced so pkgrel is present
pkgbuild_set_pkgrel() {
	local new_pkgrel=$1
	local pkgrel=${pkgrel}

	if ! grep --extended-regexp --quiet --max-count=1 "^pkgrel=${pkgrel}$" PKGBUILD; then
		die "Non-standard pkgrel declaration"
	fi
	sed --regexp-extended "s|^(pkgrel=)${pkgrel}$|\1${new_pkgrel}|g" --in-place PKGBUILD
}