Skip to main content
Glama

mermaid-mcp-server

by peng-shawn
#!/bin/bash # Script to help with the release process # Check if a version argument was provided if [ -z "$1" ]; then echo "Error: No version specified" echo "Usage: ./scripts/release.sh <version|patch|minor|major>" echo "Examples:" echo " ./scripts/release.sh 0.1.4 # Set specific version" echo " ./scripts/release.sh patch # Increment patch version (0.1.3 -> 0.1.4)" echo " ./scripts/release.sh minor # Increment minor version (0.1.3 -> 0.2.0)" echo " ./scripts/release.sh major # Increment major version (0.1.3 -> 1.0.0)" exit 1 fi VERSION_ARG=$1 # Check if the version is a semantic increment or specific version if [[ "$VERSION_ARG" =~ ^(patch|minor|major)$ ]]; then # It's a semantic increment INCREMENT_TYPE=$VERSION_ARG # Get the current version to display in logs CURRENT_VERSION=$(grep -o '"version": "[^"]*"' package.json | cut -d'"' -f4) echo "Using semantic increment: $INCREMENT_TYPE (current version: $CURRENT_VERSION)" else # It's a specific version - validate semver format if ! [[ $VERSION_ARG =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+)?(\+[0-9A-Za-z-]+)?$ ]]; then echo "Error: Version must follow semantic versioning (e.g., 1.2.3, 1.2.3-beta, etc.)" echo "Or use one of: patch, minor, major" exit 1 fi # Store the specific version SPECIFIC_VERSION=$VERSION_ARG echo "Using specific version: $SPECIFIC_VERSION" fi # Check if we're on the main branch CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$CURRENT_BRANCH" != "main" ]; then echo "Warning: You are not on the main branch. Current branch: $CURRENT_BRANCH" read -p "Do you want to continue? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1 fi fi # Check if working directory is clean if [ -n "$(git status --porcelain)" ]; then echo "Error: Working directory is not clean. Please commit or stash your changes." exit 1 fi # Pull latest changes echo "Pulling latest changes from origin..." git pull origin main # Check current versions in files PACKAGE_VERSION=$(grep -o '"version": "[^"]*"' package.json | cut -d'"' -f4) PACKAGE_LOCK_VERSION=$(grep -o '"version": "[^"]*"' package-lock.json | head -1 | cut -d'"' -f4) INDEX_VERSION=$(grep -o 'version: "[^"]*"' index.ts | cut -d'"' -f2) echo "Current versions:" echo "- package.json: $PACKAGE_VERSION" echo "- package-lock.json: $PACKAGE_LOCK_VERSION" echo "- index.ts: $INDEX_VERSION" # Function to update index.ts version update_index_version() { local old_version=$1 local new_version=$2 local commit_msg=$3 echo "Updating version in index.ts from $old_version to $new_version..." sed -i '' "s/version: \"$old_version\"/version: \"$new_version\"/" index.ts git add index.ts if [ -n "$commit_msg" ]; then git commit -m "$commit_msg" fi } if [ "$PACKAGE_VERSION" != "$PACKAGE_LOCK_VERSION" ] || [ "$PACKAGE_VERSION" != "$INDEX_VERSION" ]; then echo "Warning: Version mismatch detected between files." if [ -n "$SPECIFIC_VERSION" ]; then echo "Will update all files to version: $SPECIFIC_VERSION" else echo "Will update all files using increment: $INCREMENT_TYPE" fi read -p "Do you want to continue? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1 fi fi # Handle version updates based on increment type or specific version if [ -n "$INCREMENT_TYPE" ]; then # For semantic increments echo "Incrementing version ($INCREMENT_TYPE)..." # Use npm version to increment the version npm version $INCREMENT_TYPE --no-git-tag-version # Get the new version NEW_VERSION=$(grep -o '"version": "[^"]*"' package.json | cut -d'"' -f4) # Update index.ts with the new version update_index_version "$INDEX_VERSION" "$NEW_VERSION" # Commit all changes and create tag git add package.json package-lock.json git commit -m "chore: release version $NEW_VERSION" git tag -a "v$NEW_VERSION" -m "Version $NEW_VERSION" else # For specific version # Use npm version to update package.json and package-lock.json without git operations echo "Updating version in package.json and package-lock.json..." npm version $SPECIFIC_VERSION --no-git-tag-version # Update index.ts update_index_version "$INDEX_VERSION" "$SPECIFIC_VERSION" # Commit all changes and create tag git add package.json package-lock.json git commit -m "chore: release version $SPECIFIC_VERSION" git tag -a "v$SPECIFIC_VERSION" -m "Version $SPECIFIC_VERSION" fi # Get the final version for pushing the tag FINAL_VERSION=$(grep -o '"version": "[^"]*"' package.json | cut -d'"' -f4) # Push changes and tag to remote echo "Pushing changes and tag to remote..." git push origin main git push origin v$FINAL_VERSION echo "Release process completed for version $FINAL_VERSION" echo "The GitHub workflow will now build and publish the package to npm" echo "Check the Actions tab in your GitHub repository for progress"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/peng-shawn/mermaid-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server