123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/usr/bin/env node
- /*!
- * Module dependencies.
- */
- var qrcode = require('../lib/main'),
- path = require('path'),
- fs = require('fs');
- /*!
- * Parse the process name
- */
- var name = process.argv[1].replace(/^.*[\\\/]/, '').replace('.js', '');
- /*!
- * Parse the input
- */
- if (process.stdin.isTTY) {
- // called with input as argument, e.g.:
- // ./qrcode-terminal.js "INPUT"
- var input = process.argv[2];
- handleInput(input);
- } else {
- // called with piped input, e.g.:
- // echo "INPUT" | ./qrcode-terminal.js
- var readline = require('readline');
- var interface = readline.createInterface({
- input: process.stdin,
- output: process.stdout,
- terminal: false
- });
- interface.on('line', function(line) {
- handleInput(line);
- });
- }
- /*!
- * Process the input
- */
- function handleInput(input) {
- /*!
- * Display help
- */
- if (!input || input === '-h' || input === '--help') {
- help();
- process.exit();
- }
- /*!
- * Display version
- */
- if (input === '-v' || input === '--version') {
- version();
- process.exit();
- }
- /*!
- * Render the QR Code
- */
- qrcode.generate(input);
- }
- /*!
- * Helper functions
- */
- function help() {
- console.log([
- '',
- 'Usage: ' + name + ' <message>',
- '',
- 'Options:',
- ' -h, --help output usage information',
- ' -v, --version output version number',
- '',
- 'Examples:',
- '',
- ' $ ' + name + ' hello',
- ' $ ' + name + ' "hello world"',
- ''
- ].join('\n'));
- }
- function version() {
- var packagePath = path.join(__dirname, '..', 'package.json'),
- packageJSON = JSON.parse(fs.readFileSync(packagePath), 'utf8');
- console.log(packageJSON.version);
- }
|