1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | 'use strict';
|
15 |
|
16 | const path = require('path');
|
17 | const tmp = require('tmp');
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | function apiDefaults() {
|
23 | return {
|
24 | parallelism: 5,
|
25 | bufferSize: 500,
|
26 | requestTimeout: 120000,
|
27 | log: tmp.fileSync().name,
|
28 | resume: false,
|
29 | mode: 'full'
|
30 | };
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 |
|
36 | function cliDefaults() {
|
37 | const defaults = apiDefaults();
|
38 |
|
39 |
|
40 | defaults.db = 'test';
|
41 | defaults.url = 'http://localhost:5984';
|
42 |
|
43 |
|
44 | defaults.quiet = false;
|
45 |
|
46 | return defaults;
|
47 | }
|
48 |
|
49 |
|
50 |
|
51 |
|
52 | function applyEnvironmentVariables(opts) {
|
53 |
|
54 | if (typeof process.env.COUCH_URL !== 'undefined') {
|
55 | opts.url = process.env.COUCH_URL;
|
56 | }
|
57 |
|
58 |
|
59 | if (typeof process.env.COUCH_DATABASE !== 'undefined') {
|
60 | opts.db = process.env.COUCH_DATABASE;
|
61 | }
|
62 |
|
63 |
|
64 | if (typeof process.env.COUCH_BUFFER_SIZE !== 'undefined') {
|
65 | opts.bufferSize = parseInt(process.env.COUCH_BUFFER_SIZE);
|
66 | }
|
67 |
|
68 |
|
69 | if (typeof process.env.COUCH_PARALLELISM !== 'undefined') {
|
70 | opts.parallelism = parseInt(process.env.COUCH_PARALLELISM);
|
71 | }
|
72 |
|
73 |
|
74 | if (typeof process.env.COUCH_REQUEST_TIMEOUT !== 'undefined') {
|
75 | opts.requestTimeout = parseInt(process.env.COUCH_REQUEST_TIMEOUT);
|
76 | }
|
77 |
|
78 |
|
79 | if (typeof process.env.COUCH_LOG !== 'undefined') {
|
80 | opts.log = path.normalize(process.env.COUCH_LOG);
|
81 | }
|
82 |
|
83 |
|
84 | if (typeof process.env.COUCH_RESUME !== 'undefined' && process.env.COUCH_RESUME === 'true') {
|
85 | opts.resume = true;
|
86 | }
|
87 |
|
88 |
|
89 | if (typeof process.env.COUCH_OUTPUT !== 'undefined') {
|
90 | opts.output = path.normalize(process.env.COUCH_OUTPUT);
|
91 | }
|
92 |
|
93 |
|
94 | if (typeof process.env.COUCH_MODE !== 'undefined' && process.env.COUCH_MODE === 'shallow') {
|
95 | opts.mode = 'shallow';
|
96 | }
|
97 |
|
98 |
|
99 | if (typeof process.env.COUCH_QUIET !== 'undefined' && process.env.COUCH_QUIET === 'true') {
|
100 | opts.quiet = true;
|
101 | }
|
102 |
|
103 |
|
104 | if (typeof process.env.CLOUDANT_IAM_API_KEY !== 'undefined') {
|
105 | opts.iamApiKey = process.env.CLOUDANT_IAM_API_KEY;
|
106 | }
|
107 |
|
108 |
|
109 | if (typeof process.env.CLOUDANT_IAM_TOKEN_URL !== 'undefined') {
|
110 | opts.iamTokenUrl = process.env.CLOUDANT_IAM_TOKEN_URL;
|
111 | }
|
112 | }
|
113 |
|
114 | module.exports = {
|
115 | apiDefaults: apiDefaults,
|
116 | cliDefaults: cliDefaults,
|
117 | applyEnvironmentVariables: applyEnvironmentVariables
|
118 | };
|