forked from cellularatomaton/cryptfolio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharg-parser.js
54 lines (50 loc) · 1.37 KB
/
arg-parser.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
#!/usr/bin/env node
'use strict';
const ArgumentParser = require('argparse').ArgumentParser;
const parser = new ArgumentParser({
version: '1.0.0',
addHelp:true,
description: 'Cryptfolio: Market Cap Weighted Portfolio Generator.'
});
parser.addArgument(
[ '-s', '--size' ],
{
help: 'Portfolio size: Number of coins / tokens in portfolio.'
}
);
parser.addArgument(
[ '-n', '--notional' ],
{
help: 'Notional: Fiat value of portfolio.'
}
);
parser.addArgument(
[ '-i', '--includes'],
{
help: 'Includes: Only use these coins / tokens in building the portfolio.',
dest: 'filter_in'
}
);
parser.addArgument(
[ '-e', '--excludes'],
{
help: 'Excludes: Do not use these coins / tokens in building the portfolio.',
dest: 'filter_out'
}
);
parser.addArgument(
[ '-o', '--output'],
{
help: 'Output format: "cli" or "markdown"'
}
);
const args = parser.parseArgs();
const FILTER_IN = args.filter_in || '';
const FILTER_OUT = args.filter_out || '';
module.exports = {
PORTFOLIO_SIZE : parseInt(args.size) || 25,
PORTFOLIO_NOTIONAL : parseInt(args.notional) || 100000,
FILTER_IN_ARRAY : FILTER_IN.length > 0 ? FILTER_IN.split(',') : [],
FILTER_OUT_ARRAY : FILTER_OUT.length > 0 ? FILTER_OUT.split(',') : [],
OUTPUT_FORMAT : args.output || 'cli'
};