-
-
Notifications
You must be signed in to change notification settings - Fork 18
/
index.js
executable file
路56 lines (48 loc) 路 1.31 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env node
'use strict';
const Conf = require('conf');
const meow = require('meow');
const chalk = require('chalk');
const cash = require('./cash.js');
const config = new Conf();
const argv = process.argv.slice(2);
// CLI configuration
const cli = meow(`
Usage
$ cash <amount> <from> <to>
$ cash <options>
Options
--set -s Set default currencies
--key -k Set API key
Examples
$ cash 10 usd eur pln
$ cash --set usd aud
$ cash --key [key]
`, {
flags: {
key: {
type: 'string',
alias: 'k'
}
}
});
// Set API key
if (cli.flags.key) {
config.set('key', cli.flags.key);
console.log(chalk.green('Saved API key to ' + config.path));
process.exit(0);
}
// Save default currencies
if (argv.indexOf('--save') !== -1 || argv.indexOf('-s') !== -1) {
config.set('defaultFrom', argv[1] || config.get('defaultFrom', 'USD'));
config.set('defaultTo', (argv.length > 2) ? process.argv.slice(4) : config.get('defaultTo', ['USD', 'EUR', 'GBP', 'PLN']));
console.log(chalk.green('Saved default currencies to ' + config.path));
process.exit(0);
}
// Handle amount & currencies
const command = {
amount: parseFloat(argv[0]) || 1,
from: argv[1] || config.get('defaultFrom', 'USD'),
to: (argv.length > 2) ? process.argv.slice(4) : config.get('defaultTo', ['USD', 'EUR', 'GBP', 'PLN'])
};
cash(command);