62 lines
1.5 KiB
Bash
62 lines
1.5 KiB
Bash
#!/bin/bash -e
|
|
|
|
# This script is a wrapper around checkinstall that supports a subset of arch
|
|
# linux' PKGBUILD format. This means that it can be used to build debian
|
|
# packages from a single file.
|
|
#
|
|
# PKGBUILD files are written in bash and can define the following variables:
|
|
#
|
|
# - pkgname [required]
|
|
# - pkgver [required]
|
|
# - pkgrel [required]
|
|
# - pkgdesc
|
|
# - arch [required, array] (NOTE: only the first value will be used)
|
|
# - url [required]
|
|
# - license
|
|
# - depends [array]
|
|
# - provides [array]
|
|
#
|
|
# In addition to that, the file *MUST* define the two functions `build` (for
|
|
# preparing the files that should be installed) and `package` (for actually
|
|
# installing the files).
|
|
#
|
|
# Both functions have access to a variable `$srcdir` which is the path to a
|
|
# temporary directory.
|
|
|
|
if [ $(id -u) -eq 0 ]; then
|
|
echo "This script should not be run as root!"
|
|
exit 1
|
|
fi
|
|
|
|
join() {
|
|
local IFS=",";
|
|
echo "$*";
|
|
}
|
|
|
|
marker() {
|
|
echo "$(tput setaf 10; tput bold)=== $1 ===$(tput sgr0)"
|
|
}
|
|
|
|
marker 'Setup'
|
|
srcdir=$(mktemp -d)
|
|
trap "rm -rf $srcdir description-pak; exit" INT TERM EXIT
|
|
source PKGBUILD
|
|
|
|
marker 'Build'
|
|
(build)
|
|
|
|
marker 'Package'
|
|
echo "$pkgdesc" > description-pak
|
|
checkinstall \
|
|
--default \
|
|
--install=no \
|
|
--nodoc \
|
|
--pkgname="$pkgname" \
|
|
--pkgversion="$pkgver" \
|
|
--pkgrelease="$pkgrel" \
|
|
--pkgarch="$arch" \
|
|
--pkgsource="$url" \
|
|
--pkglicense="$license" \
|
|
--requires="$(join ${depends[@]})" \
|
|
--provides="$(join ${provides[@]})" \
|
|
bash -c "srcdir="$srcdir" && source PKGBUILD && package" |