UNPKG

@porosys/pss

Version:

Porosys Server Setup (pss): General-purpose server setup and automation tool (including Netdata management)

43 lines (38 loc) 1.15 kB
import { input } from '@inquirer/prompts'; export const installStatsd = async () => { const { execa } = await import('execa'); const { existsSync } = await import('fs'); if (existsSync('/opt/statsd/config.js')) { console.log('ℹ️ statsd is already installed at /opt/statsd.'); return; } const answer = await input({ message: `⚠️ statsd is not installed. Would you like to install it now? (Y/n): `, }); if (/^n(o)?$/i.test(answer.trim())) { console.log(`❌ statsd is required. Setup cancelled by user.`); process.exit(1); } try { await execa( 'git', ['clone', 'https://github.com/statsd/statsd.git', '/opt/statsd'], { stdio: 'inherit' }, ); await execa('npm', ['install'], { cwd: '/opt/statsd', stdio: 'inherit', }); await execa('cp', [ '-f', '/opt/statsd/exampleConfig.js', '/opt/statsd/config.js', ]); console.log( '✅ statsd installed in /opt/statsd. Please edit /opt/statsd/config.js as needed.', ); } catch (err) { console.error('❌ Failed to install statsd:', err); process.exit(1); } };