Maton MCP Server

Official
by maton-ai
Verified
#!/bin/bash set -euo pipefail IFS=$'\n\t' RELEASE_TYPE=${1:-} echo_help() { cat << EOF USAGE: ./scripts/publish <release_type> ARGS: <release_type> A Semantic Versioning release type used to bump the version number. Either "patch", "minor", or "major". EOF } # Show help if no arguments passed if [ $# -eq 0 ]; then echo "Error! Missing release type argument" echo "" echo_help exit 1 fi # Show help message if -h, --help, or help passed case $1 in -h | --help | help) echo_help exit 0 ;; esac # Validate passed release type case $RELEASE_TYPE in patch | minor | major) ;; *) echo "Error! Invalid release type supplied" echo "" echo_help exit 1 ;; esac # Make sure our working dir is the modelcontextprotocol directory cd "$(git rev-parse --show-toplevel)/modelcontextprotocol" echo "Fetching git remotes" git fetch GIT_STATUS=$(git status) if ! grep -q 'On branch main' <<< "$GIT_STATUS"; then echo "Error! Must be on main branch to publish" exit 1 fi if ! grep -q "Your branch is up to date with 'origin/main'." <<< "$GIT_STATUS"; then echo "Error! Must be up to date with origin/main to publish" exit 1 fi if ! grep -q 'working tree clean' <<< "$GIT_STATUS"; then echo "Error! Cannot publish with dirty working tree" exit 1 fi echo "Installing dependencies according to lockfile" pnpm install --frozen-lockfile echo "Building package" pnpm run build echo "Publishing release" npm --ignore-scripts publish --non-interactive --access public echo "Pushing git commit and tag" git push echo "Clean" pnpm run clean echo "Publish successful!" echo ""