Diskernet/scripts/build_only.sh

45 lines
1.9 KiB
Bash
Raw Normal View History

2023-01-14 18:07:52 +00:00
#!/usr/bin/env bash
2024-08-29 14:58:50 +00:00
#set -x
2024-08-01 04:20:21 +00:00
source $HOME/.nvm/nvm.sh
rm -rf build
mkdir -p build/esm/
mkdir -p build/cjs/
mkdir -p build/global/
2024-08-01 04:23:55 +00:00
mkdir -p build/bin/
2024-08-01 04:20:21 +00:00
nvm use v22
if [[ ! -d "node_modules" ]]; then
npm i
fi
2024-08-01 05:08:19 +00:00
if [[ -n "$NO_MINIFY" ]]; then
./node_modules/.bin/esbuild src/app.js --bundle --outfile=build/esm/downloadnet.mjs --format=esm --platform=node --analyze
./node_modules/.bin/esbuild src/app.js --bundle --outfile=build/cjs/out.cjs --platform=node --analyze
else
./node_modules/.bin/esbuild src/app.js --bundle --outfile=build/esm/downloadnet.mjs --format=esm --platform=node --minify --analyze
./node_modules/.bin/esbuild src/app.js --bundle --outfile=build/cjs/out.cjs --platform=node --minify --analyze
fi
2024-08-01 05:46:03 +00:00
cp -r public build/
2024-08-01 05:39:23 +00:00
echo "const bigR = require('module').createRequire(__dirname); require = bigR; process.traceProcessWarnings = true; " > build/cjs/dn.cjs
# polyfill for process.disableWarning idea as node arg --disableWarning=ExperimentalWarning is likely not accessible in this setup
#echo "const __orig_emit = process.emit; process.emit = (event, error) => event === 'warning' && error.name === 'ExperimentalWarning' ? false : originalEmit.call(process, event, error);" >> build/cjs/dn.cjs
# although we can use the sea config key disableExperimentalSEAWarning to achieve same
2024-08-01 05:08:19 +00:00
cat build/cjs/out.cjs >> build/cjs/dn.cjs
2024-08-01 04:20:21 +00:00
echo "#!/usr/bin/env node" > build/global/downloadnet.cjs
2024-08-01 05:39:23 +00:00
cat build/cjs/dn.cjs >> build/global/downloadnet.cjs
2024-08-01 04:20:21 +00:00
chmod +x build/global/downloadnet.cjs
2024-08-01 04:21:44 +00:00
if [[ "$OSTYPE" == darwin* ]]; then
2024-08-29 14:29:03 +00:00
echo "Using macOS builder..." >&2
2024-08-01 05:39:23 +00:00
./stampers/macos.sh dn build/cjs/dn.cjs build/bin/
2024-08-29 14:29:03 +00:00
elif [[ "$(node.exe -p process.platform)" == win* ]]; then
echo "Using windows builder..." >&2
2024-08-29 14:58:50 +00:00
./stampers/win.bat dn-win.exe ./build/cjs/dn.cjs ./build/bin/
2024-08-01 04:21:44 +00:00
else
2024-08-29 14:29:03 +00:00
echo "Using linux builder..." >&2
2024-08-23 03:30:57 +00:00
./stampers/nix.sh dn build/cjs/dn.cjs build/bin/
2024-08-01 04:21:44 +00:00
fi
2024-08-29 14:29:03 +00:00
echo "Done"
read -p "Any key to exit"
2023-01-14 18:07:52 +00:00