qrfi
Version:
A CLI Wi-Fi QR Code Generator.
64 lines (63 loc) • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const program = require("commander");
const fs = require("fs");
const tty_1 = require("tty");
const outdent = require("@kamataryo/outdent");
const _1 = require(".");
const { version, description } = JSON.parse(fs.readFileSync(__dirname + '/../package.json').toString('utf-8'));
program
.version(version)
.description(description)
.usage('[ssid] [options]')
.option('-t, --authentication-type <value>', 'Optional. One of WEP, WPA, nopass. Default value is WPA.')
.option('-p, --password <value>', 'Optional.')
.option('-H, --hidden', 'Optional. The SSID is hidden or not. Default value is `false`.')
.option('-f, --format <value>', 'Optional. ascii as default, png or svg.');
program.on('--help', () => {
process.stdout.write(`
Examples:
$ qrfi YOUR-SSID -p YOUR-PASSWORD
$ qrfi YOUR-SSID -p YOUR-PASSWORD -f png > qr.png
$ echo YOUR-SSID | qrfi -p YOUR-PASSWORD
`[outdent]);
});
program.parse(process.argv);
const args = [...program.args];
const authenticationType = program.authenticationType || 'WPA';
const password = program.password || '';
const hidden = !!program.hidden;
const format = program.format || 'ascii';
process.stdin.resume();
process.stdin.setEncoding('utf8');
let stdinData = '';
const onEnd = () => {
const networkSSID = args[0] || stdinData;
let qrfi;
try {
qrfi = new _1.default({ authenticationType, networkSSID, password, hidden });
}
catch (e) {
process.stdout.write(e.message);
process.exit(1);
}
qrfi
.toQR({ format })
.then(qrcode => {
process.stdout.write(qrcode);
process.exit(0);
})
.catch(e => {
process.stderr.write(e.message);
process.exit(2);
});
};
if (tty_1.isatty(0)) {
onEnd();
}
else {
process.stdin.on('data', chunk => (stdinData += chunk));
process.stdin.on('end', onEnd);
}
//# sourceMappingURL=cli.js.map