This repository has been archived by the owner on Feb 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
config.js
98 lines (84 loc) · 2.23 KB
/
config.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
'use strict'
const Command = require('ronin').Command
const debug = require('debug')
const get = require('lodash.get')
const set = require('lodash.set')
const log = debug('cli:config')
log.error = debug('cli:config:error')
const utils = require('../utils')
module.exports = Command.extend({
desc: 'Get and set IPFS config values',
options: {
bool: {
type: 'boolean',
default: false
},
json: {
type: 'boolean',
default: false
}
},
run: (bool, json, key, value) => {
if (!key) {
throw new Error("argument 'key' is required")
}
utils.getIPFS((err, ipfs) => {
if (err) {
throw err
}
if (!value) {
// Get the value of a given key
if (utils.isDaemonOn()) {
return ipfs.config.get(key, (err, config) => {
if (err) {
log.error(err)
throw new Error('failed to read the config')
}
console.log(config.Value)
})
}
ipfs.config.show((err, config) => {
if (err) {
log.error(err)
throw new Error('failed to read the config')
}
const value = get(config, key)
console.log(value)
})
} else {
// Set the new value of a given key
if (bool) {
value = (value === 'true')
} else if (json) {
try {
value = JSON.parse(value)
} catch (err) {
log.error(err)
throw new Error('invalid JSON provided')
}
}
if (utils.isDaemonOn()) {
return ipfs.config.set(key, value, (err) => {
if (err) {
log.error(err)
throw new Error('failed to save the config')
}
})
}
ipfs.config.show((err, originalConfig) => {
if (err) {
log.error(err)
throw new Error('failed to read the config')
}
const updatedConfig = set(originalConfig, key, value)
ipfs.config.replace(updatedConfig, (err) => {
if (err) {
log.error(err)
throw new Error('failed to save the config')
}
})
})
}
})
}
})