forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			124 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
 | |
| npm run build
 | |
| mv statisticshtml statistics.html
 | |
| mv testhtml test.html
 | |
| mv studiohtml studio.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"
 |