Skip to main content
Glama
copyExample.ts1.85 kB
import { select } from "@inquirer/prompts"; import fs from "fs-extra"; import { marked, MarkedExtension } from "marked"; import { markedTerminal } from "marked-terminal"; import path from "path"; marked.use(markedTerminal() as MarkedExtension); export const copyExample = async ( chosenExample: string, examplesDir: string, outputDir: string, isVerbose: boolean, ) => { const sourceDir = path.join(examplesDir, chosenExample); const isOutputDirJustName = !path.isAbsolute(outputDir) && !outputDir.includes(path.sep); const targetDir = isOutputDirJustName ? path.resolve(process.cwd(), outputDir) : path.isAbsolute(outputDir) ? outputDir : path.resolve(process.cwd(), outputDir); const finalTargetDir = isOutputDirJustName ? path.join(targetDir) : path.join(targetDir, chosenExample); if (fs.existsSync(finalTargetDir)) { const overwrite = await select({ choices: [ { name: "Yes, overwrite it", value: true }, { name: "No, cancel the operation", value: false }, ], message: `The directory "${finalTargetDir}" already exists. Do you want to overwrite it?`, }); if (!overwrite) { console.log("Operation canceled. No files were copied."); return; } if (isVerbose) console.log(`Removing existing directory: ${finalTargetDir}...`); await fs.remove(finalTargetDir); } if (isVerbose) console.log(`Copying example to ${finalTargetDir}...`); await fs.copy(sourceDir, finalTargetDir); console.log(`\nCreated ${finalTargetDir}\n`); if (isVerbose) console.log(`Successfully created "${chosenExample}".`); const readmePath = path.join(finalTargetDir, "README.md"); if (fs.existsSync(readmePath)) { const readmeContent = await fs.readFile(readmePath, "utf-8"); console.log(marked(readmeContent)); } };

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/ExpertVagabond/universal-blockchain'

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