mirror of
https://github.com/ben-grande/qusal.git
synced 2025-03-05 05:09:27 -05:00

It doesn't checkout the current directory when querying the spec, so we provide the already modified version of the spec.
45 lines
1.5 KiB
Bash
Executable File
45 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
|
##
|
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
set -eu
|
|
|
|
command -v git >/dev/null || { echo "Missing program: git" >&2; exit 1; }
|
|
cd "$(git rev-parse --show-toplevel)" || exit 1
|
|
|
|
template=".qubesbuilder.template"
|
|
target=".qubesbuilder"
|
|
intended_target="${target}"
|
|
if test "${1-}" = "test"; then
|
|
tmpdir="$(mktemp -d)"
|
|
target="${tmpdir}/.qubesbuilder"
|
|
trap 'rm -rf -- "${tmpdir}"' EXIT INT HUP QUIT ABRT
|
|
fi
|
|
ignored="$(git ls-files --exclude-standard --others --ignored salt/)"
|
|
untracked="$(git ls-files --exclude-standard --others salt/)"
|
|
unwanted="$(printf %s"${ignored}\n${untracked}\n" | grep "^salt/\S\+/README.md" \
|
|
| cut -d "/" -f2 | sort -u)"
|
|
group="$(./scripts/spec-get.sh dom0 group)"
|
|
projects="$(find salt/ -mindepth 1 -maxdepth 1 -type d \
|
|
| sort -d | sed "s|^salt/\(\S\+\)| - rpm_spec/${group}-\1.spec|")"
|
|
for unwanted_project in ${unwanted}; do
|
|
projects="$(echo "${projects}" | sed "\@rpm_spec/${group}-${unwanted_project}.spec@d")"
|
|
done
|
|
|
|
if test "${1-}" = "print"; then
|
|
echo "${projects}"
|
|
exit 0
|
|
fi
|
|
|
|
sed -e "/@SPEC@/d" "${template}" | tee "${target}" >/dev/null
|
|
echo "${projects}" | tee -a "${target}" >/dev/null
|
|
if test "${1-}" = "test"; then
|
|
if ! cmp -s "${target}" "${intended_target}"; then
|
|
echo "${0##*/}: error: File ${intended_target} is not up to date" >&2
|
|
echo "${0##*/}: error: Update the builder file with: ${0##/*}" >&2
|
|
exit 1
|
|
fi
|
|
fi
|