45 lines
1.9 KiB
Bash
Executable File
45 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#set -x
|
|
source $HOME/.nvm/nvm.sh
|
|
|
|
rm -rf build
|
|
mkdir -p build/esm/
|
|
mkdir -p build/cjs/
|
|
mkdir -p build/global/
|
|
mkdir -p build/bin/
|
|
nvm use v22
|
|
if [[ ! -d "node_modules" ]]; then
|
|
npm i
|
|
fi
|
|
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
|
|
cp -r public build/
|
|
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
|
|
cat build/cjs/out.cjs >> build/cjs/dn.cjs
|
|
echo "#!/usr/bin/env node" > build/global/downloadnet.cjs
|
|
cat build/cjs/dn.cjs >> build/global/downloadnet.cjs
|
|
chmod +x build/global/downloadnet.cjs
|
|
if [[ "$OSTYPE" == darwin* ]]; then
|
|
echo "Using macOS builder..." >&2
|
|
./stampers/macos.sh dn build/cjs/dn.cjs build/bin/
|
|
elif [[ "$(node.exe -p process.platform)" == win* ]]; then
|
|
echo "Using windows builder..." >&2
|
|
./stampers/win.bat dn-win.exe ./build/cjs/dn.cjs ./build/bin/
|
|
else
|
|
echo "Using linux builder..." >&2
|
|
./stampers/nix.sh dn build/cjs/dn.cjs build/bin/
|
|
fi
|
|
echo "Done"
|
|
|
|
read -p "Any key to exit"
|
|
|