Use path based SHELL in Makefiles. It was suggested that this is a better solution for make for cases when there is no /usr/bin/env. See: https://github.com/purpleidea/mgmt/pull/694#discussion_r1015596204
72 lines
2.1 KiB
Bash
Executable File
72 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# If mkosi.builddir/ exists mkosi will set $BUILDDIR to it, let's then use it as
|
|
# out-of-tree build dir. Otherwise, let's make up our own builddir.
|
|
[ -z "$BUILDDIR" ] && BUILDDIR=build
|
|
|
|
# After some inspection, we've noticed that:
|
|
# `pwd` is: /root/src
|
|
# $SRCDIR is: /root/src
|
|
# $DESTDIR is: /root/dest
|
|
|
|
# TODO: Can we use misc/make-path.sh here instead?
|
|
# The default that will get used automatically.
|
|
export GOPATH=~/go/
|
|
|
|
# The golang binaries are stored here.
|
|
export GOBIN="${GOPATH}bin/"
|
|
|
|
# Needed so that golang build tools will get found.
|
|
export PATH="${GOBIN}:${PATH}"
|
|
|
|
# Pull from the MKOSI_DEFAULT var: https://github.com/systemd/mkosi/pull/367
|
|
mkosi_default="mkosi.default." # remove this prefix
|
|
MGMT_MKOSI_DISTRO="${MKOSI_DEFAULT##$mkosi_default}"
|
|
|
|
# Lookup the type of image build we're doing.
|
|
if [ "${MGMT_MKOSI_DISTRO}" = "" ]; then
|
|
echo "The MGMT_MKOSI_DISTRO variable is empty."
|
|
exit 1
|
|
fi
|
|
echo "Build distro: $MGMT_MKOSI_DISTRO"
|
|
|
|
# Arch mirror fixes.
|
|
if [ -e "/etc/arch-release" ]; then
|
|
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
|
|
# Enable all mirrors.
|
|
sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup
|
|
#rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist # SLOW
|
|
echo 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
|
cat /etc/pacman.d/mirrorlist.backup >> /etc/pacman.d/mirrorlist
|
|
pacman -Syu --noconfirm pacman-mirrorlist
|
|
pacman -Syu
|
|
fi
|
|
|
|
# Get all the dependencies for mgmt.
|
|
make deps
|
|
|
|
# Build it!
|
|
make || exit 1
|
|
|
|
# Store the output.
|
|
# TODO: is this required?
|
|
mv mgmt $BUILDDIR
|
|
|
|
# Get the releases directory path.
|
|
releases_path=$(make releases_path) # It captures any other output, careful!
|
|
if [ "$releases_path" = "" ]; then
|
|
echo "Releases path is unknown."
|
|
exit 1
|
|
fi
|
|
mkdir -p "$releases_path" # Ensure it exists.
|
|
|
|
echo "The releases_path is: ${releases_path}."
|
|
|
|
# Build the package for the distribution that we're in.
|
|
make release_${MGMT_MKOSI_DISTRO}
|
|
|
|
# Store releases.
|
|
mv "$releases_path${MGMT_MKOSI_DISTRO}/" $BUILDDIR # mv releases/$(VERSION)/fedora-29/ $BUILDDIR
|
|
|
|
echo "Done mkosi build!"
|