forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			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
 |