forked from MapComplete/MapComplete
126 lines
3.4 KiB
Bash
Executable file
126 lines
3.4 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
# Copy all necessary files from the 'dist' directory into dist full
|
|
# To be executed from the `MapComplete` repo root
|
|
nvm use
|
|
if [[ ! -f bookcases.html ]]
|
|
then
|
|
npm run generate:layouts
|
|
fi
|
|
|
|
if [ ! -f "needed_assets.csv" ]
|
|
then
|
|
echo "NEEDED ASSETS is missing!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "config.json file is invalid, exiting now"
|
|
tput bel
|
|
exit 0
|
|
fi
|
|
|
|
# We don't bundle studio, test and statistics; as it is not suited for small screens anyway
|
|
mv studio.html studiohtml
|
|
mv test.html testhtml
|
|
mv statistics.html statisticshtml
|
|
mv style_test.html style_testhtml
|
|
npm run build
|
|
mv statisticshtml statistics.html
|
|
mv testhtml test.html
|
|
mv studiohtml studio.html
|
|
mv style_testhtml style_test.html
|
|
|
|
echo '''
|
|
import type { CapacitorConfig } from "@capacitor/cli";
|
|
|
|
const config: CapacitorConfig = {
|
|
appId: "org.mapcomplete",
|
|
appName: "MapComplete",
|
|
webDir: "dist-full"
|
|
};
|
|
|
|
export default config;
|
|
''' > capacitor.config.ts
|
|
|
|
# clean distribution directory in android, it contains the older version
|
|
rm -rf android/app/src/main/assets/public
|
|
|
|
# copy distribution files
|
|
rm -rf dist-full
|
|
mkdir dist-full
|
|
cp dist/*.html dist-full/
|
|
cp dist/*.css dist-full/
|
|
# cp dist/*.webmanifest dist-full/ # Not needed
|
|
cp -r dist/css dist-full/
|
|
|
|
mkdir dist-full/assets
|
|
mkdir dist-full/assets/generated
|
|
|
|
cp dist/assets/*.js dist-full/assets
|
|
cp dist/assets/*.svg dist-full/assets
|
|
cp dist/assets/*.woff dist-full/assets
|
|
cp dist/assets/*.ttf dist-full/assets
|
|
cp dist/assets/*.png dist-full/assets
|
|
cp dist/assets/*.json dist-full/assets
|
|
cp dist/assets/*.css dist-full/assets
|
|
|
|
cp -r dist/assets/data dist-full/assets/
|
|
cp -r dist/assets/docs dist-full/assets/
|
|
cp -r dist/assets/fonts dist-full/assets/
|
|
cp -r dist/assets/langs dist-full/assets/
|
|
# We need the assets for files, we copy them from "needed_assets"
|
|
# cp -r dist/assets/layers dist-full/assets/
|
|
# cp -r dist/assets/themes dist-full/assets/
|
|
|
|
while IFS= read -r file; do
|
|
[[ $file == ./assets/* ]] || continue
|
|
dest="dist-full/${file#./}"
|
|
mkdir -p "$(dirname "$dest")"
|
|
cp "$file" "$dest"
|
|
# echo "Copying $file to $dest"
|
|
done < needed_assets.csv
|
|
|
|
cp dist/assets/layers/questions/*.svg dist-full/assets/layers/questions/
|
|
|
|
cp -r dist/assets/png dist-full/assets/
|
|
cp -r dist/assets/svg dist-full/assets/
|
|
cp -r dist/assets/templates dist-full/assets/
|
|
cp -r dist/assets/generated/themes/ dist-full/assets/generated/
|
|
# cp dist/assets/*.js.map dist-full/assets/
|
|
rm -rf dist-full/assets/data/nsi
|
|
rm dist-full/assets/layers/*/*.json
|
|
|
|
# The license info file is compiled in
|
|
rm dist-full/assets/*/*/*.license
|
|
rm dist-full/**/license_info.json
|
|
|
|
# We need the assets in the layers, but not the actual layer files, which can take quite a bit of space
|
|
rm dist-full/assets/layers/*/*.json
|
|
rm dist-full/assets/generated/themes/*
|
|
# Needed for studio, but it is not included
|
|
rm -rf dist-full/assets/docs
|
|
|
|
|
|
|
|
# mkdir dist-full/assets/generated
|
|
nvm use
|
|
|
|
# assets/icon-only.png will be used as the app icon
|
|
# See https://capacitorjs.com/docs/guides/splash-screens-and-icons
|
|
npx capacitor-assets generate
|
|
|
|
npx cap sync
|
|
npm run clean
|
|
|
|
# Monkey patch version numbers to make everything work
|
|
cd android
|
|
sed "s/\.\.\/node_modules\///" -i capacitor.settings.gradle
|
|
cd capacitor
|
|
sed "s/'com.android.tools.build:gradle:8.2.1'/'com.android.tools.build:gradle:8.10'/" -i build.gradle
|
|
|
|
|
|
tput bel
|
|
tput bel # Note: tput doesn't work in the runners and may not be the last command, otherwise, it'll fail.
|
|
echo "All done! Don't forget to click 'gradle sync files' in Android Studio"
|