UNPKG

@program6/hello-yanko

Version:
74 lines (57 loc) β€’ 1.4 kB
#!/usr/bin/env node var path = require('path'); var childProcess = require('child_process'); var FILENAME = path.join(__dirname, 'theme.mp3'); var bin = 'play'; var args = [FILENAME]; if (process.platform == 'darwin') bin = 'afplay'; if (has('mplayer')) { bin = 'mplayer'; args = ['-really-quiet', FILENAME]; } if (has('banner')) { bin_banner = 'banner'; args_banner = ['-w 82', 'Happy Birthday Yanko!!']; } var proc; var respawn = true; banner(); play(); function banner() { childProcess.execSync('clear && banner Happy Birthday Yanko!!', { stdio: 'inherit', }); console.log('<ctrl-c> to exit... Yanko do not go... just wait... :)'); console.log('Loading... (Sound On!) \n'); } function play() { if (!respawn) return; console.log(`\n 🎁 Happy Birthday Yanko!! 🎢🎢🎢 \n`); proc = childProcess.spawn(bin, args); proc.stdout.resume(); proc.stderr.resume(); proc.unref(); proc.on('exit', play); if (process.argv[2]) { proc.stdout.unref(); proc.stderr.unref(); proc.stdin.unref(); } } function has(cmd) { try { childProcess.execSync('which ' + cmd + ' 2>/dev/null 2>/dev/null'); return true; } catch (err) { return false; } } if (process.argv[2]) { childProcess.spawn(process.argv[2], process.argv.slice(3), { stdio: 'inherit', }); } process.on('exit', function () { respawn = false; proc.kill(); });