UNPKG

hex-and-rgba

Version:

Convert HEX/HEXa/aHEX with alpha to RGBa and back

94 lines (82 loc) 3.35 kB
#!/usr/bin/env node (async()=>{ // remove node binary and script name from params let args = global.args || process.argv.slice(2); // check if -s was given as param let arg = -1, arg2 = -1, mod = 0; if (!!~(arg = args.indexOf('-s'))) mod = 's'; else if (!!~(arg = args.indexOf('-t'))) mod = 't'; else if (!!~(arg = args.indexOf('-n'))) mod = 'n'; if (arg !== -1) args.splice(arg, 1); if (!!~(arg2 = args.indexOf('-i'))) { await new Promise(resolve=> { args.splice(arg2, 1); var buf = ''; process.stdin.setEncoding('utf8'); process.stdin.on('data', function (chunk) { buf += chunk; }); process.stdin.on('end', function () { if (buf) args.push(buf.trim()); resolve(); }).resume(); }) } if (arg !== -1) delete args[arg]; if (!args.length) { let package = require('../package.json'); let o = (process.platform == "win32" || process.platform == "win64") ? {s: '\>', e: ''} : {s: '$', e: ''}; let name = process.argv.pop().split(/[\/|\\]/).pop().replace('.js','') + o.e; console.info(`${name} (${package.name} v${package.version})`); console.info(`Nabil Redmann <repo@BananaAcid.de>`); console.info(`${package.homepage}`); console.info(`\nusage: ${name} [-stni] <hex>`); console.info(`\nparams:`); console.info(` -s out as css rgba string`); console.info(` -t out as tab seperated rgba parts`); console.info(` -n out as newline seperated rgba parts`); console.info(` -i use pipe in content`); console.info(`\nexamples:`); console.info(o.s + ` ${name} "#7b7b7bcc" => [ 123, 123, 123, 0.8 ]`); console.info(o.s + ` ${name} 7b7b7bcc => [ 123, 123, 123, 0.8 ]`); console.info(o.s + ` ${name} 7b 7b 7b cc => [ 123, 123, 123, 0.8 ]`); console.info(o.s + ` ${name} 7b7b7bcc -s => rgba(123,123,123,0.8)`); console.info(o.s + ` ${name} something => false`); console.info(o.s + ` echo #7b7b7bcc | ${name} -i => [ 123, 123, 123, 0.8 ]`); console.info(''); } else { let HAR = require('../index.js'); try { let p = args.length == 1 ? args.pop() : args.join(''); if (p[0] != '#') p = '#' + p; // prefix with '#' if needed let result = HAR.hexToRgba( p ); if (result === false) { process.stderr.write('false\n'); process.exit(1); } else { if (mod == 's') console.log(result.toString()); else if (mod == 't') console.log(result.join('\t')); else if (mod == 'n') console.log(result.join('\n')); else { console.log(JSON.stringify(result)); // output json array } } } catch (e) { process.stderr.write('false\n'); process.exit(2); } } })();