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"
 |