mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-04 04:44:08 +01:00 
			
		
		
		
	- covert `cSpell.json` to `cspell.config.yaml` - break up the word list into multiple dictionary files - fix spelling issues - Enable spell checking code for non-test files
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
RUN="docker compose run --rm"
 | 
						|
 | 
						|
ansi()          { echo -e "\e[${1}m${*:2}\e[0m"; }
 | 
						|
bold()          { ansi 1 "$@"; }
 | 
						|
# italic()        { ansi 3 "$@"; }
 | 
						|
underline()     { ansi 4 "$@"; }
 | 
						|
# strikethrough() { ansi 9 "$@"; }
 | 
						|
red()           { ansi 31 "$@"; }
 | 
						|
 | 
						|
name=$(basename $0)
 | 
						|
command=$1
 | 
						|
args=${@:2}
 | 
						|
 | 
						|
case $command in
 | 
						|
 | 
						|
build)
 | 
						|
docker compose build $args
 | 
						|
;;
 | 
						|
 | 
						|
sh)
 | 
						|
$RUN mermaid sh
 | 
						|
;;
 | 
						|
 | 
						|
pnpm)
 | 
						|
$RUN mermaid sh -c "pnpm $args"
 | 
						|
;;
 | 
						|
 | 
						|
dev)
 | 
						|
$RUN --service-ports mermaid sh -c "pnpm run dev"
 | 
						|
;;
 | 
						|
 | 
						|
docs:dev)
 | 
						|
$RUN --service-ports mermaid sh -c "pnpm run --filter mermaid docs:dev:docker"
 | 
						|
;;
 | 
						|
 | 
						|
cypress)
 | 
						|
$RUN cypress $args
 | 
						|
;;
 | 
						|
 | 
						|
help|"")
 | 
						|
 | 
						|
# Alignment of help message must be as it is, it will be nice looking when printed
 | 
						|
usage=$(
 | 
						|
cat <<EOF
 | 
						|
 | 
						|
$(bold MERMAID LOCAL DOCKER DEVELOPMENT)
 | 
						|
 | 
						|
Welcome! Thank you for joining the development.
 | 
						|
This is a script for running commands within docker containers at ease.
 | 
						|
__________________________________________________________________________________________
 | 
						|
 | 
						|
Development Quick Start Guide:
 | 
						|
 | 
						|
$(bold ./$name pnpm install)           # Install packages
 | 
						|
$(bold ./$name dev)                    # Launch dev server with examples, open http://localhost:9000
 | 
						|
$(bold ./$name docs:dev)               # Launch official website, open http://localhost:3333
 | 
						|
 | 
						|
$(bold ./$name pnpm vitest)            # Run watcher for unit tests
 | 
						|
$(bold ./$name cypress)                # Run integration tests (after starting dev server)
 | 
						|
$(bold ./$name pnpm build)             # Prepare it for production
 | 
						|
__________________________________________________________________________________________
 | 
						|
 | 
						|
Commands:
 | 
						|
 | 
						|
$(bold ./$name build)                  # Build image
 | 
						|
$(bold ./$name cypress)                # Run integration tests
 | 
						|
$(bold ./$name dev)                    # Run dev server with examples, open http://localhost:9000
 | 
						|
$(bold ./$name docs:dev)               # For docs contributions, open http://localhost:3333
 | 
						|
$(bold ./$name help)                   # Show this help
 | 
						|
$(bold ./$name pnpm)                   # Run any 'pnpm' command
 | 
						|
$(bold ./$name sh)                     # Open 'sh' inside docker container for development
 | 
						|
__________________________________________________________________________________________
 | 
						|
 | 
						|
Examples of frequently used commands:
 | 
						|
 | 
						|
$(bold ./$name pnpm add --filter mermaid) $(underline package)
 | 
						|
        Add package to mermaid
 | 
						|
 | 
						|
$(bold ./$name pnpm -w run lint:fix)
 | 
						|
        Run prettier and ES lint
 | 
						|
 | 
						|
$(bold git diff --name-only develop \| xargs ./$name pnpm prettier --write)
 | 
						|
        Prettify everything you added so far
 | 
						|
 | 
						|
$(bold ./$name cypress open --project .)
 | 
						|
        Open cypress interactive GUI
 | 
						|
 | 
						|
$(bold ./$name cypress run --spec cypress/integration/rendering/)$(underline test.spec.ts)
 | 
						|
        Run specific test in cypress
 | 
						|
 | 
						|
$(bold xhost +local:)
 | 
						|
        Allow local connections for x11 server
 | 
						|
 | 
						|
EOF
 | 
						|
)
 | 
						|
 | 
						|
echo -n -e "$usage"
 | 
						|
;;
 | 
						|
 | 
						|
*)
 | 
						|
message="$(red Unknown command: $command). See $(bold ./$name help) for available commands."
 | 
						|
echo -n -e "$message\n" >&2
 | 
						|
$0 help
 | 
						|
exit 1
 | 
						|
;;
 | 
						|
 | 
						|
esac
 |