UNPKG

1.23 kBtext/coffeescriptView Raw
1_ = require 'underscore'
2fs = require "fs"
3path = require "path"
4{logger} = require "./utils"
5
6log = logger "config"
7
8
9if process.env?.HOME?
10 KD_DIR = path.join process.env.HOME, ".kd"
11else
12 KD_DIR = "/root/.kd"
13
14MODULE_ROOT = path.join __dirname, "..", "modules"
15CURRENT_MODULE_ROOT = path.join process.cwd(), ".kd", "modules"
16USER_MODULE_ROOT = path.join KD_DIR, "modules"
17
18class ConfigFile
19
20 dontSaveThemInFile: ["publicKey", "privateKey"]
21
22 constructor: ->
23
24 if process.env?.HOME?
25 @configFile = path.join process.env.HOME, ".kd", "kdconfig"
26 else
27 @configFile = "/root/.kd/kdconfig"
28
29 try
30 @config = @load @configFile
31 catch error
32 @config = {}
33 @save()
34
35
36 get: (key)->
37 @config[key]
38
39 set: (key, value...)->
40 @config[key] = value.join " "
41
42 remove: (key)-> delete @config[key]
43
44 getAll: -> @config
45
46 save:->
47 cloned = _.omit @config, @dontSaveThemInFile
48 fs.writeFileSync @configFile, (JSON.stringify cloned, null, 2)
49
50 load:->
51 data = fs.readFileSync(@configFile).toString()
52 @config = JSON.parse data
53
54
55module.exports = {ConfigFile, KD_DIR, MODULE_ROOT, CURRENT_MODULE_ROOT, USER_MODULE_ROOT}