Skip to main content
Glama
copy-docs.js1.66 kB
#!/usr/bin/env node import { readdir, copyFile, mkdir } from 'fs/promises'; import { join, dirname, relative } from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const projectRoot = join(__dirname, '..'); /** * Recursively find all .md files in a directory */ async function findMarkdownFiles(dir, files = []) { const entries = await readdir(dir, { withFileTypes: true }); for (const entry of entries) { const fullPath = join(dir, entry.name); if (entry.isDirectory()) { await findMarkdownFiles(fullPath, files); } else if (entry.isFile() && entry.name.endsWith('.md')) { files.push(fullPath); } } return files; } /** * Copy markdown files from src to dist, maintaining directory structure */ async function copyDocs() { const srcDir = join(projectRoot, 'src'); const distDir = join(projectRoot, 'dist'); try { const markdownFiles = await findMarkdownFiles(srcDir); for (const srcFile of markdownFiles) { // Get relative path from src directory const relativePath = relative(srcDir, srcFile); const destFile = join(distDir, relativePath); const destDir = dirname(destFile); // Create destination directory if it doesn't exist await mkdir(destDir, { recursive: true }); // Copy the file await copyFile(srcFile, destFile); console.log(`Copied: ${relativePath}`); } console.log(`✓ Copied ${markdownFiles.length} markdown file(s)`); } catch (error) { console.error('Error copying docs:', error); process.exit(1); } } copyDocs();

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/SimplifierIO/simplifier-mcp'

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