Skip to main content
Glama
install.js2.28 kB
const fs = require('fs'); const path = require('path'); const axios = require('axios'); const tar = require('tar'); const packageJson = require('./package.json'); const releaseVersion = '0.1.14'; async function install() { const repo = packageJson.repository.url.match(/github\.com\/(.*)\.git/)[1]; const platform = process.platform; const arch = process.arch; const platformMap = { 'darwin': 'darwin', 'linux': 'linux' }; const archMap = { 'x64': 'amd64', 'arm64': 'arm64' }; if (!platformMap[platform] || !archMap[arch]) { console.error(`Unsupported platform/architecture: ${platform}/${arch}`); process.exit(1); } const goPlatform = platformMap[platform]; const goArch = archMap[arch]; const extension = 'tar.gz'; const binaryName = 'gbox'; const finalBinaryDir = path.join(__dirname, 'bin'); const url = `https://github.com/${repo}/releases/download/v${releaseVersion}/gbox-${goPlatform}-${goArch}-${releaseVersion}.${extension}`; console.log(`Downloading gbox binary from ${url}`); try { const response = await axios({ url, method: 'GET', responseType: 'stream' }); if (!fs.existsSync(finalBinaryDir)) { fs.mkdirSync(finalBinaryDir, { recursive: true }); } const tempDir = fs.mkdtempSync(path.join(__dirname, 'temp-')); await new Promise((resolve, reject) => { response.data.pipe(tar.x({ C: tempDir })) .on('finish', resolve) .on('error', reject); }); const tempBinPath = path.join(tempDir, 'packages', 'cli', 'gbox'); const finalBinPath = path.join(finalBinaryDir, binaryName); fs.renameSync(tempBinPath, finalBinPath); fs.chmodSync(finalBinPath, 0o755); fs.rmSync(tempDir, { recursive: true, force: true }); console.log('gbox installed successfully.'); } catch (error) { console.error('Failed to download or install gbox binary.'); if (error.response) { console.error(`Status: ${error.response.status}`); if(error.response.status === 404) { console.error(`File not found at ${url}. Please check the version and release assets.`); } } else { console.error(error.message); } process.exit(1); } } install();

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/babelcloud/gru-sandbox'

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