1
1
var fs = require ( 'fs' ) ;
2
2
var path = require ( 'path' ) ;
3
+ var Utils = require ( './utils' ) ;
4
+ var Q = require ( 'q' ) ;
3
5
4
6
var home = process . env . HOME || process . env . USERPROFILE || process . env . HOMEPATH ;
5
7
@@ -14,6 +16,16 @@ module.exports = {
14
16
}
15
17
return this ;
16
18
} ,
19
+ promiseLoad : function ( ) {
20
+ var self = this ;
21
+ self . file = self . CONFIG_FILE ;
22
+ var readFile = Utils . promisify ( fs . readFile ) ;
23
+
24
+ return readFile ( path . join ( home , self . file ) ) . then ( function ( jsonContents ) {
25
+ self . data = jsonContents . toString ( ) ;
26
+ return self ;
27
+ } ) ;
28
+ } ,
17
29
save : function ( ) {
18
30
if ( ! this . data ) {
19
31
return ;
@@ -30,6 +42,24 @@ module.exports = {
30
42
console . error ( 'Unable to save settings file: ' + e ) ;
31
43
}
32
44
} ,
45
+ promiseSave : function ( ) {
46
+ if ( ! this . data ) {
47
+ return Q . resolve ( ) ;
48
+ }
49
+ var dirPath = path . join ( home , path . dirname ( this . CONFIG_FILE ) ) ;
50
+ var filepath = path . join ( dirPath , this . CONFIG_FILE ) ;
51
+ var statFile = Utils . promisify ( fs . stat ) ;
52
+ var mkDir = Utils . promisify ( fs . mkdir ) ;
53
+ var jsonString = JSON . stringify ( this . data , null , 2 ) ;
54
+
55
+ return statFile ( dirPath ) . then ( function ( stat ) {
56
+ return Utils . writeJsonContents ( filepath , jsonString ) ;
57
+ } , function ( ) {
58
+ return mkDir ( dirPath ) . then ( function ( ) {
59
+ return Utils . writeJsonContents ( filepath , jsonString ) ;
60
+ } ) ;
61
+ } ) ;
62
+ } ,
33
63
get : function ( k ) {
34
64
return this . data [ k ] ;
35
65
} ,
0 commit comments