Skip to main content
Glama
check-publish-status.jsβ€’4.84 kB
#!/usr/bin/env node /** * Check publishing status for NPM and Docker Hub * Usage: node scripts/check-publish-status.js [version] */ import { execSync } from "child_process"; // Use native fetch in Node.js 18+ const PACKAGE_NAME = "mcp-wordpress"; const DOCKER_IMAGE = "docdyhr/mcp-wordpress"; async function checkNPM(version) { console.log("\nπŸ“¦ Checking NPM Publishing Status...\n"); try { // Get latest version from NPM const npmVersion = execSync(`npm view ${PACKAGE_NAME} version`, { encoding: "utf-8", }).trim(); console.log(`βœ… Latest NPM version: ${npmVersion}`); // Check specific version if provided if (version) { try { execSync(`npm view ${PACKAGE_NAME}@${version} version`, { encoding: "utf-8", }); console.log(`βœ… Version ${version} exists on NPM`); } catch { console.log(`❌ Version ${version} NOT found on NPM`); return false; } } // Get publish time const publishTime = execSync(`npm view ${PACKAGE_NAME} time.${version || npmVersion}`, { encoding: "utf-8", }).trim(); console.log(`πŸ“… Published at: ${new Date(publishTime).toLocaleString()}`); console.log(`πŸ”— NPM URL: https://www.npmjs.com/package/${PACKAGE_NAME}`); return true; } catch (error) { console.error("❌ Failed to check NPM:", error.message); return false; } } async function checkDockerHub(version) { console.log("\n🐳 Checking Docker Hub Publishing Status...\n"); try { // Fetch tags from Docker Hub API const response = await fetch(`https://hub.docker.com/v2/repositories/${DOCKER_IMAGE}/tags?page_size=50`); const data = await response.json(); if (!data.results) { throw new Error("No tags found"); } // Get latest tag info const latestTag = data.results.find((tag) => tag.name === "latest"); if (latestTag) { console.log(`βœ… Latest tag updated: ${new Date(latestTag.last_updated).toLocaleString()}`); } // Check specific version if provided if (version) { const versionTag = data.results.find((tag) => tag.name === version || tag.name === `v${version}`); if (versionTag) { console.log(`βœ… Version ${versionTag.name} exists on Docker Hub`); console.log(`πŸ“… Published at: ${new Date(versionTag.last_updated).toLocaleString()}`); } else { console.log(`❌ Version ${version} NOT found on Docker Hub`); return false; } } // List all available tags console.log("\nπŸ“‹ Available Docker tags:"); data.results.slice(0, 10).forEach((tag) => { console.log(` - ${tag.name} (${new Date(tag.last_updated).toLocaleDateString()})`); }); console.log(`\nπŸ”— Docker Hub URL: https://hub.docker.com/r/${DOCKER_IMAGE}/tags`); return true; } catch (error) { console.error("❌ Failed to check Docker Hub:", error.message); return false; } } async function checkGitHubRelease(version) { console.log("\nπŸš€ Checking GitHub Release Status...\n"); try { const releases = execSync("gh release list --limit=5", { encoding: "utf-8", }); console.log("πŸ“‹ Recent GitHub releases:"); console.log(releases); if (version) { try { const releaseInfo = execSync(`gh release view v${version} --json tagName,publishedAt,url`, { encoding: "utf-8", }); const release = JSON.parse(releaseInfo); console.log(`βœ… GitHub release v${version} exists`); console.log(`πŸ“… Published at: ${new Date(release.publishedAt).toLocaleString()}`); console.log(`πŸ”— Release URL: ${release.url}`); } catch { console.log(`❌ GitHub release v${version} NOT found`); return false; } } return true; } catch (error) { console.error("❌ Failed to check GitHub releases:", error.message); return false; } } async function main() { const version = process.argv[2]; console.log("πŸ” MCP WordPress Publishing Status Check"); console.log("========================================"); if (version) { console.log(`\nChecking for version: ${version}`); } const npmOk = await checkNPM(version); const dockerOk = await checkDockerHub(version); const githubOk = await checkGitHubRelease(version); console.log("\nπŸ“Š Summary\n" + "=".repeat(40)); console.log(`NPM Publishing: ${npmOk ? "βœ… Success" : "❌ Failed"}`); console.log(`Docker Hub: ${dockerOk ? "βœ… Success" : "❌ Failed"}`); console.log(`GitHub Release: ${githubOk ? "βœ… Success" : "❌ Failed"}`); if (!npmOk || !dockerOk) { console.log("\n⚠️ Some publishing targets failed!"); process.exit(1); } else { console.log("\nβœ… All publishing targets successful!"); } } main().catch(console.error);

Latest Blog Posts

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/docdyhr/mcp-wordpress'

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