qusal/scripts/spec-build.sh
2023-11-13 14:33:28 +00:00

68 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
## SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
##
## SPDX-License-Identifier: AGPL-3.0-or-later
set -eu
usage(){
printf '%s\n' "Usage: ${0##*/} PROJECT [release]" >&2
exit 1
}
case "${1-}" in
""|-*) usage;;
esac
release=""
case "${2-}" in
release) release="1";;
"") ;;
*) usage;;
esac
command -v dnf >/dev/null ||
{ printf "Missing program: dnf\n" >&2; exit 1; }
command -v rpmlint >/dev/null ||
{ printf "Missing program: rpmlint\n" >&2; exit 1; }
## command -v rpmdev-setuptree >/dev/null ||
## { printf "Missing program: rpmdev-setuptree\n" >&2; exit 1; }
command -v rpmbuild >/dev/null ||
{ printf "Missing program: rpmbuild\n" >&2; exit 1; }
command -v git >/dev/null ||
{ printf "Missing program: git\n" >&2; exit 1; }
cd "$(git rev-parse --show-toplevel)" || exit 1
project="${1}"
spec_gen="./scripts/spec-gen.sh"
spec_get="./scripts/spec-get.sh"
group="$(${spec_get} "${project}" group)"
spec="rpm_spec/${group}-${project}.spec"
"${spec_gen}" "${project}"
rpmlint "${spec}"
if grep -q "^BuildRequires: " "${spec}"; then
sudo dnf build-dep "${spec}"
fi
if command -v rpmdev-setuptree >/dev/null; then
rpmdev-setuptree
else
mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/BUILDROOT ~/rpmbuild/RPMS
mkdir -p ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS
fi
mkdir ~/rpmbuild/BUILD/"${group}-${project}"
mkdir ~/rpmbuild/SOURCES/"${group}-${project}"
cp -r "salt/${project}"/* ~/rpmbuild/BUILD/"${group}-${project}"/
cp -r "salt/${project}"/* ~/rpmbuild/SOURCES/"${group}-${project}"/
if test -n "${release}"; then
rpmbuild -ba --sign "${spec}"
else
rpmbuild -ba "${spec}"
fi