mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-02 21:00:55 +00:00
* fix(hack): use sudo -E when running Rust binaries This makes it possible to pass envvars to the Krata runtime * feat(o11y): add fluent sink to logs This change adds fluent logging as an opt-in feature. Setting `KRATA_LOG_FLUENT` with an address:port will start a TCP connection, sending logs. A later changes will respect a URI scheme and use structured logging.
33 lines
748 B
Bash
33 lines
748 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
REAL_SCRIPT="$(realpath "${0}")"
|
|
cd "$(dirname "${REAL_SCRIPT}")/../.."
|
|
|
|
if [ -z "${RUST_LOG}" ]
|
|
then
|
|
RUST_LOG="INFO"
|
|
fi
|
|
|
|
CARGO_BUILD_FLAGS=""
|
|
|
|
if [ "${KRATA_BUILD_QUIET}" = "1" ]
|
|
then
|
|
CARGO_BUILD_FLAGS="-q"
|
|
fi
|
|
|
|
build_and_run() {
|
|
EXE_TARGET="${1}"
|
|
shift
|
|
sudo mkdir -p /var/lib/krata/guest
|
|
if [ "${KRATA_BUILD_INITRD}" = "1" ]
|
|
then
|
|
TARGET_ARCH="$(./hack/build/arch.sh)"
|
|
./hack/initrd/build.sh ${CARGO_BUILD_FLAGS}
|
|
sudo cp "target/initrd/initrd-${TARGET_ARCH}" "/var/lib/krata/guest/initrd"
|
|
fi
|
|
RUST_TARGET="$(./hack/build/target.sh)"
|
|
./hack/build/cargo.sh build ${CARGO_BUILD_FLAGS} --bin "${EXE_TARGET}"
|
|
exec sudo -E sh -c "RUST_LOG='${RUST_LOG}' 'target/${RUST_TARGET}/debug/${EXE_TARGET}' $*"
|
|
}
|