collab/mermaid/runblame
View source
6dd74de1#!/usr/bin/env bash
6dd74de2RUN="docker compose run --rm"
6dd74de3
6dd74de4ansi() { echo -e "\e[${1}m${*:2}\e[0m"; }
6dd74de5bold() { ansi 1 "$@"; }
6dd74de6# italic() { ansi 3 "$@"; }
6dd74de7underline() { ansi 4 "$@"; }
6dd74de8# strikethrough() { ansi 9 "$@"; }
6dd74de9red() { ansi 31 "$@"; }
6dd74de10
6dd74de11name=$(basename $0)
6dd74de12command=$1
6dd74de13args=${@:2}
6dd74de14
6dd74de15case $command in
6dd74de16
6dd74de17build)
6dd74de18docker compose build $args
6dd74de19;;
6dd74de20
6dd74de21sh)
6dd74de22$RUN mermaid sh
6dd74de23;;
6dd74de24
6dd74de25pnpm)
6dd74de26$RUN mermaid sh -c "pnpm $args"
6dd74de27;;
6dd74de28
6dd74de29dev)
6dd74de30$RUN --service-ports mermaid sh -c "pnpm run dev"
6dd74de31;;
6dd74de32
6dd74de33docs:dev)
6dd74de34$RUN --service-ports mermaid sh -c "pnpm run --filter mermaid docs:dev:docker"
6dd74de35;;
6dd74de36
6dd74de37cypress)
6dd74de38$RUN cypress $args
6dd74de39;;
6dd74de40
6dd74de41help|"")
6dd74de42
6dd74de43# Alignment of help message must be as it is, it will be nice looking when printed
6dd74de44usage=$(
6dd74de45cat <<EOF
6dd74de46
6dd74de47$(bold MERMAID LOCAL DOCKER DEVELOPMENT)
6dd74de48
6dd74de49Welcome! Thank you for joining the development.
6dd74de50This is a script for running commands within docker containers at ease.
6dd74de51__________________________________________________________________________________________
6dd74de52
6dd74de53Development Quick Start Guide:
6dd74de54
6dd74de55$(bold ./$name pnpm install) # Install packages
6dd74de56$(bold ./$name dev) # Launch dev server with examples, open http://localhost:9000
6dd74de57$(bold ./$name docs:dev) # Launch official website, open http://localhost:3333
6dd74de58
6dd74de59$(bold ./$name pnpm vitest) # Run watcher for unit tests
6dd74de60$(bold ./$name cypress) # Run integration tests (after starting dev server)
6dd74de61$(bold ./$name pnpm build) # Prepare it for production
6dd74de62__________________________________________________________________________________________
6dd74de63
6dd74de64Commands:
6dd74de65
6dd74de66$(bold ./$name build) # Build image
6dd74de67$(bold ./$name cypress) # Run integration tests
6dd74de68$(bold ./$name dev) # Run dev server with examples, open http://localhost:9000
6dd74de69$(bold ./$name docs:dev) # For docs contributions, open http://localhost:3333
6dd74de70$(bold ./$name help) # Show this help
6dd74de71$(bold ./$name pnpm) # Run any 'pnpm' command
6dd74de72$(bold ./$name sh) # Open 'sh' inside docker container for development
6dd74de73__________________________________________________________________________________________
6dd74de74
6dd74de75Examples of frequently used commands:
6dd74de76
6dd74de77$(bold ./$name pnpm add --filter mermaid) $(underline package)
6dd74de78 Add package to mermaid
6dd74de79
6dd74de80$(bold ./$name pnpm -w run lint:fix)
6dd74de81 Run prettier and ES lint
6dd74de82
6dd74de83$(bold git diff --name-only develop \| xargs ./$name pnpm prettier --write)
6dd74de84 Prettify everything you added so far
6dd74de85
6dd74de86$(bold ./$name cypress open --project .)
6dd74de87 Open cypress interactive GUI
6dd74de88
6dd74de89$(bold ./$name cypress run --spec cypress/integration/rendering/)$(underline test.spec.ts)
6dd74de90 Run specific test in cypress
6dd74de91
6dd74de92$(bold xhost +local:)
6dd74de93 Allow local connections for x11 server
6dd74de94
6dd74de95EOF
6dd74de96)
6dd74de97
6dd74de98echo -n -e "$usage"
6dd74de99;;
6dd74de100
6dd74de101*)
6dd74de102message="$(red Unknown command: $command). See $(bold ./$name help) for available commands."
6dd74de103echo -n -e "$message\n" >&2
6dd74de104$0 help
6dd74de105exit 1
6dd74de106;;
6dd74de107
6dd74de108esac