@program6/hello-yanko
Version:
Hello Yanko, July 29th
74 lines (57 loc) β’ 1.4 kB
JavaScript
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();
});