|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function die(){ |
|
|
local rc=$1 |
|
|
shift |
|
|
echo "Error: $@" 1>&2 |
|
|
exit $rc |
|
|
} |
|
|
|
|
|
dirTop=../.. |
|
|
buildName= |
|
|
b64=0 |
|
|
optFlag=-Oz |
|
|
clean=1 |
|
|
makeFlag=-j4 |
|
|
snapshotSuffix= |
|
|
for arg in $@; do |
|
|
case $arg in |
|
|
|
|
|
-64) b64=1 |
|
|
;; |
|
|
|
|
|
-0) optFlag=-O0 |
|
|
;; |
|
|
|
|
|
-1) makeFlag= |
|
|
;; |
|
|
|
|
|
--noclean) clean=0 |
|
|
;; |
|
|
|
|
|
--snapshot) |
|
|
snapshotSuffix=$(date +%Y%m%d) |
|
|
;; |
|
|
|
|
|
-?|--help) |
|
|
sed -n -e '2,/^###/p' $0 |
|
|
exit |
|
|
;; |
|
|
|
|
|
*) if [[ x != x${buildName} ]]; then |
|
|
die 1 "Unhandled argument: $arg" |
|
|
fi |
|
|
buildName=$arg |
|
|
;; |
|
|
esac |
|
|
done |
|
|
|
|
|
make= |
|
|
for i in gmake make; do |
|
|
make=$(which $i 2>/dev/null) |
|
|
[[ x != x${make} ]] && break |
|
|
done |
|
|
[[ x = x$make ]] && die 127 "Cannot find make" |
|
|
|
|
|
|
|
|
[[ x = x${buildName} ]] && buildName=sqlite-wasm |
|
|
|
|
|
buildName=${buildName}${snapshotSuffix} |
|
|
|
|
|
echo "Creating the SQLite wasm dist bundle..." |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tgtFiles=( |
|
|
demo-worker1-promiser.html |
|
|
demo-worker1-promiser.js |
|
|
demo-worker1-promiser-esm.html |
|
|
demo-worker1-promiser.mjs |
|
|
|
|
|
tester1.html |
|
|
tester1-esm.html |
|
|
tester1-worker.html |
|
|
tester1.js |
|
|
tester1.mjs |
|
|
) |
|
|
|
|
|
if [[ 1 = $b64 ]]; then |
|
|
tgtFiles+=( |
|
|
tester1-64bit.html |
|
|
tester1-esm-64bit.html |
|
|
tester1-worker-64bit.html |
|
|
tester1-64bit.js |
|
|
tester1-64bit.mjs |
|
|
) |
|
|
fi |
|
|
|
|
|
[[ 1 = $clean ]] && $make clean |
|
|
$make $makeFlag \ |
|
|
t-version-info t-stripccomments \ |
|
|
${tgtFiles[@]} \ |
|
|
"emcc_opt=${optFlag}" || die $? |
|
|
|
|
|
dirTmp=d.dist |
|
|
rm -fr $dirTmp |
|
|
mkdir -p $dirTmp/jswasm || die $? |
|
|
mkdir -p $dirTmp/common || die $? |
|
|
|
|
|
|
|
|
fTop=( |
|
|
demo-123.html |
|
|
demo-123-worker.html |
|
|
demo-123.js |
|
|
|
|
|
demo-worker1.html |
|
|
demo-worker1.js |
|
|
|
|
|
demo-jsstorage.html |
|
|
demo-jsstorage.js |
|
|
|
|
|
module-symbols.html |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fJ1=( |
|
|
sqlite3-opfs-async-proxy.js |
|
|
sqlite3-worker1.js |
|
|
sqlite3-worker1.mjs |
|
|
sqlite3-worker1-bundler-friendly.mjs |
|
|
sqlite3-worker1-promiser.js |
|
|
sqlite3-worker1-promiser.mjs |
|
|
sqlite3-worker1-promiser-bundler-friendly.mjs |
|
|
) |
|
|
fJ2=( |
|
|
sqlite3.js |
|
|
sqlite3.mjs |
|
|
) |
|
|
|
|
|
|
|
|
fW=(sqlite3.wasm) |
|
|
if [[ 1 = $b64 ]]; then |
|
|
fW+=(sqlite3-64bit.wasm) |
|
|
fi |
|
|
|
|
|
function fcp() { |
|
|
cp -p $@ || die $? |
|
|
chmod +w ${@: -1} |
|
|
} |
|
|
|
|
|
function scc(){ |
|
|
${dirTop}/tool/stripccomments $@ || die $? |
|
|
} |
|
|
|
|
|
jw=jswasm |
|
|
fcp ${tgtFiles[@]} $dirTmp/. |
|
|
fcp README-dist.txt $dirTmp/README.txt |
|
|
fcp index-dist.html $dirTmp/index.html |
|
|
fcp common/*.css common/SqliteTestUtil.js $dirTmp/common/. |
|
|
|
|
|
for i in ${fTop[@]}; do |
|
|
fcp $i $dirTmp/. |
|
|
done |
|
|
|
|
|
for i in ${fW[@]}; do |
|
|
fcp $jw/$i $dirTmp/$jw/. |
|
|
done |
|
|
|
|
|
for i in ${fJ1[@]}; do |
|
|
scc -k < $jw/$i > $dirTmp/$jw/$i || die $? |
|
|
done |
|
|
|
|
|
for i in ${fJ2[@]}; do |
|
|
scc -k -k < $jw/$i > $dirTmp/$jw/$i || die $? |
|
|
done |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
svi=./version-info |
|
|
vnum=$($svi --download-version) |
|
|
[ "" = "$vnum" ] && die "version number is empty!" |
|
|
vdir=${buildName}-${vnum} |
|
|
fzip=${vdir}.zip |
|
|
rm -fr ${vdir} ${fzip} |
|
|
mv $dirTmp $vdir || die $? |
|
|
zip -rq9 $fzip $(find $vdir -type f | sort) || die $? |
|
|
ls -la $fzip |
|
|
unzip -lv $fzip || die $? |
|
|
cat <<EOF |
|
|
** |
|
|
** Unzipped files are in $vdir |
|
|
** |
|
|
EOF |
|
|
|