OSDN Git Service

Merge branch 'dashboardmaster' into dev
[bytom/bytom-electron.git] / modules / settings.js
1 const { app } = require('electron')
2 const path = require('path')
3 const glob = require('glob')
4
5 // import logger from './logger'
6
7 let instance = null
8
9 class Settings {
10   constructor() {
11     if (!instance) {
12       instance = this
13     }
14
15     return instance
16   }
17
18   init() {
19     // const logLevel = { logLevel: 'info' }
20     // const logFolder = { logFolder: path.join(this.userDataPath, 'logs') }
21     // const loggerOptions = Object.assign('info', logLevel, logFolder)
22     // logger.setup(loggerOptions)
23   }
24
25   get userDataPath() {
26     return app.getPath('userData')
27   }
28
29   get appDataPath() {
30     // Application Support/
31     return app.getPath('appData')
32   }
33
34   get userHomePath() {
35     return app.getPath('home')
36   }
37
38   get bytomdPath() {
39     return process.env.DEV?
40       path.join(__dirname, '../bytomd/bytomd-darwin_amd64'):
41       glob.sync( path.join(__dirname, '../../bytomd/bytomd*'))
42   }
43
44   get bytomdDataPath(){
45     let bytomdDataPath
46     switch (process.platform){
47       case 'win32':
48         bytomdDataPath = `${app.getPath('appData')}/Bytom`
49         break
50       case 'darwin':
51         bytomdDataPath = `${app.getPath('home')}/Library/Application Support/Bytom`
52         break
53       case 'linux':
54         bytomdDataPath = `${app.getPath('home')}/.bytom`
55     }
56     return bytomdDataPath
57   }
58
59   constructUserDataPath(filePath) {
60     return path.join(this.userDataPath, filePath)
61   }
62 }
63
64 module.exports = new Settings()