128 lines
2.6 KiB
Bash
Executable file
128 lines
2.6 KiB
Bash
Executable file
THEME=$1
|
|
npm run generate:layouts
|
|
if [ $# -eq 0 ]
|
|
then
|
|
echo "No arguments given. Expected a themename"
|
|
fi
|
|
|
|
pwd
|
|
if [ -f "$THEME.html" ]
|
|
then
|
|
echo "$THEME.html found."
|
|
else
|
|
echo "Theme '$THEME' not found. Did you run 'npm run generate:layouts'?"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Building theme $THEME"
|
|
rm -rf dist/*
|
|
|
|
cp vite.config.js vite_single.config.js
|
|
|
|
if [ -f index.bu.html ]
|
|
then
|
|
echo "Backup already exists"
|
|
else
|
|
cp index.html index.bu.html
|
|
fi
|
|
|
|
rm index.html
|
|
cp "$THEME.html" index.html
|
|
|
|
sed -i "s/input,/input: {index:\".\/index.html\", land: \".\/land.html\"}/" vite_single.config.js
|
|
sed -i "s/\/\/ LAYOUT.ADD_CONFIG/layout.enableMoreQuests = false/" index_"$THEME".ts
|
|
|
|
|
|
|
|
|
|
export NODE_OPTIONS=--max-old-space-size=20000
|
|
vite build --sourcemap --config vite_single.config.js || { echo 'Vite build failed' ; exit 1; }
|
|
|
|
|
|
|
|
|
|
cp -r assets/layers/ dist/assets/layers/
|
|
cp -r assets/themes/ dist/assets/themes/
|
|
cp -r assets/svg/ dist/assets/svg/
|
|
cp -r assets/png/ dist/assets/png/
|
|
mkdir dist/assets/langs
|
|
mkdir dist/assets/langs/layers
|
|
cp -r langs/layers/ dist/assets/langs/
|
|
ls dist/assets/langs/layers/
|
|
export NODE_OPTIONS=""
|
|
rm vite_single.config.js
|
|
|
|
|
|
|
|
mkdir "dist_$THEME"
|
|
cp -r dist/* "dist_$THEME"
|
|
|
|
|
|
cd "dist_$THEME" || exit 1
|
|
mv "$THEME.webmanifest" manif
|
|
rm *.webmanifest
|
|
mv manif "$THEME.webmanifest"
|
|
|
|
rm -rf assets/docs/
|
|
cd assets/generated/images/ || exit
|
|
pwd
|
|
ls .
|
|
for f in *
|
|
do
|
|
# echo ">>>" $f
|
|
case "$f" in
|
|
*$THEME* )
|
|
echo "Keeping $f"
|
|
;;
|
|
*)
|
|
rm "$f"
|
|
# echo "Not keeping $f"
|
|
esac
|
|
|
|
done
|
|
cd -
|
|
|
|
cd ..
|
|
|
|
if [ -f index.bu.html ]
|
|
then
|
|
rm index.html
|
|
mv index.bu.html index.html
|
|
fi
|
|
npm run clean
|
|
|
|
echo "BUILD COMPLETED"
|
|
|
|
if [ $# -eq 2 ]
|
|
then
|
|
echo "DEPLOY TO $2"
|
|
|
|
if [ -f "$2"/CNAME ]
|
|
then
|
|
CNAME=$(cat "$2"/CNAME)
|
|
echo "Found a CNAME"
|
|
fi
|
|
echo "Assuming github pages, add \".nojekyll\""
|
|
touch $2/.nojekyll
|
|
echo $CNAME > $2/CNAME
|
|
rm -r "$2/assets/*"
|
|
echo " ! Don't forget to add `https://$CNAME/land.html` to the Redirect URIs on https://www.openstreetmap.org/oauth2/applications/"
|
|
cp -r "dist_$THEME/"* "$2"/
|
|
|
|
if [ -d "$2"/.git ]
|
|
then
|
|
cd $2
|
|
git add *
|
|
git commit -m "Add new version of MapComplete with single-page build of $THEME"
|
|
git push
|
|
cd -
|
|
fi
|
|
rm -r "dist_$THEME"
|
|
else
|
|
echo "BUILD COMPLETED"
|
|
echo "On what domain will you deploy?"
|
|
echo " ! Don't forget to add `https://yourdomain.tld/land.html` to the Redirect URIs on https://www.openstreetmap.org/oauth2/applications/"
|
|
echo "Deploying on github pages?"
|
|
echo " 1. Don't forget to add a CNAME file (containing your domain name verbatim, without protocol)"
|
|
echo " 2 .nojekyll file (which is empty)"
|
|
fi
|