xrforge-v2/src/util/build.sh

71 lines
2 KiB
Bash
Executable file

#!/usr/bin/env sh
OUTDIR=result/bin
REDBEAN_URL="https://redbean.dev/redbean-3.0.0.com"
REDBEAN_CRC="382f1288bb96ace4bab5145e7df236846c33cc4f1be69233710682a9e71e7467 $OUTDIR/xrforge.com"
get(){
redbean(){
test -d $OUTDIR || mkdir -p $OUTDIR
rm $OUTDIR/*.com || true # delete old
verify(){
echo "$REDBEAN_CRC" > /tmp/checksum
sha256sum -c /tmp/checksum || { echo "psuedosecurity checksum failed"; exit 1; }
}
test -f /tmp/xrforge.com || {
wget --no-check-certificate "$REDBEAN_URL" -O /tmp/xrforge.com
}
cp /tmp/xrforge.com $OUTDIR/xrforge.com
test -n "$ARCH" && {
test -f /tmp/assimilate || {
wget https://cosmo.zip/pub/cosmos/bin/assimilate-x86_64.elf -O /tmp/assimilate
chmod +x /tmp/assimilate
}
rm $OUTDIR/*.bak || true
cp $OUTDIR/xrforge.com $OUTDIR/xrforge-$ARCH.com
/tmp/assimilate $OUTDIR/xrforge-$ARCH.com
}
chmod +x $OUTDIR/*.com
#verify
}
janusweb(){
set -x
test -d pkg/janusweb || {
mkdir pkg &>/dev/null || true
test -f janusweb-${version}.tar.gz || {
wget "https://github.com/coderofsalvation/janusweb/releases/download/v${version}-rc/janusweb-${version}.tar.gz"
}
test -d janusweb-${version} || tar -xvf janusweb-${version}.tar.gz
mv janusweb-${version} pkg/janusweb
}
set -x
rsync -avLu pkg/janusweb src/. # overlay but leave newer files intact
# cleanup
rm src/janusweb/janusxr.com || true
rm src/janusweb/test || true
rm src/janusweb/media/test || true
# set xrforge as defualt config
cp src/janusweb/media/assets/webui/{xrforge,default}.json
}
"$@"
}
build(){
get redbean
get janusweb
cd src
bundle(){ zip -yr $1 * .lua .init.lua .args; }
bundle ../result/bin/xrforge.com
unzip -l ../result/bin/xrforge.com
test -n "$ARCH" && bundle ../result/bin/xrforge-$ARCH.com
}
rebuild(){
cd src
zip -yr ../result/bin/xrforge.com .lua js shader img layout middleware page plugin cmd css .init.lua .args test myverse
}
"$@"