mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +00:00
Adds stack overflow backtraces, debug info compilation, and SSH password auth for development. Reduces shutdown timeouts from 60s to 100ms for faster iteration. Fixes race condition in NetService cleanup.
83 lines
1.8 KiB
Bash
Executable File
83 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
|
|
source ./builder-alias.sh
|
|
|
|
set -ea
|
|
|
|
INSTALL=false
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--install)
|
|
INSTALL=true
|
|
shift
|
|
;;
|
|
*)
|
|
>&2 echo "Unknown option: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
shopt -s expand_aliases
|
|
|
|
PROFILE=${PROFILE:-release}
|
|
if [ "${PROFILE}" = "release" ]; then
|
|
BUILD_FLAGS="--release"
|
|
else
|
|
if [ "$PROFILE" != "debug" ]; then
|
|
>&2 echo "Unknown profile $PROFILE: falling back to debug..."
|
|
PROFILE=debug
|
|
fi
|
|
fi
|
|
|
|
if [ -z "${ARCH:-}" ]; then
|
|
ARCH=$(uname -m)
|
|
fi
|
|
|
|
if [ "$ARCH" = "arm64" ]; then
|
|
ARCH="aarch64"
|
|
fi
|
|
|
|
RUST_ARCH="$ARCH"
|
|
if [ "$ARCH" = "riscv64" ]; then
|
|
RUST_ARCH="riscv64gc"
|
|
fi
|
|
|
|
if [ -z "${KERNEL_NAME:-}" ]; then
|
|
KERNEL_NAME=$(uname -s)
|
|
fi
|
|
|
|
if [ -z "${TARGET:-}" ]; then
|
|
if [ "$KERNEL_NAME" = "Linux" ]; then
|
|
TARGET="$RUST_ARCH-unknown-linux-musl"
|
|
elif [ "$KERNEL_NAME" = "Darwin" ]; then
|
|
TARGET="$RUST_ARCH-apple-darwin"
|
|
else
|
|
>&2 echo "unknown kernel $KERNEL_NAME"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
cd ../..
|
|
FEATURES="$(echo "${ENVIRONMENT:-}" | sed 's/-/,/g')"
|
|
RUSTFLAGS=""
|
|
if [[ "${ENVIRONMENT:-}" =~ (^|-)console($|-) ]]; then
|
|
RUSTFLAGS="--cfg tokio_unstable"
|
|
fi
|
|
|
|
if [[ "${ENVIRONMENT:-}" =~ (^|-)unstable($|-) ]]; then
|
|
RUSTFLAGS="$RUSTFLAGS -C debuginfo=1"
|
|
fi
|
|
|
|
echo "FEATURES=\"$FEATURES\""
|
|
echo "RUSTFLAGS=\"$RUSTFLAGS\""
|
|
rust-zig-builder cargo zigbuild --manifest-path=./core/Cargo.toml $BUILD_FLAGS --features=$FEATURES --locked --bin start-cli --target=$TARGET
|
|
if [ "$(ls -nd "core/target/$TARGET/$PROFILE/start-cli" | awk '{ print $3 }')" != "$UID" ]; then
|
|
rust-zig-builder sh -c "cd core && chown -R $UID:$UID target && chown -R $UID:$UID /usr/local/cargo"
|
|
fi
|
|
|
|
if [ "$INSTALL" = "true" ]; then
|
|
cp "core/target/$TARGET/$PROFILE/start-cli" ~/.cargo/bin/start-cli
|
|
fi |