statusline
Version:
Universal status line implementation in Node.JS
72 lines (62 loc) • 1.26 kB
JavaScript
const paths = require("../paths");
const fs = require("fs");
const console = require("../console");
const config = {
default: {
blocks: [
{
name: "time",
backgroundColor: "#000000",
color: "#ffffff"
}
]
},
loadConfig: function(){
return new Promise((resolve) => {
config.exists().then((exists) => {
if(exists){
config.loadConfigFile().then(function(config){
resolve(config);
});
} else {
resolve(config.default);
config.writeConfigFile(config.default).then(() => {
console.success("Written default config");
});
}
});
});
},
exists: () => {
return new Promise((resolve) => {
fs.access(paths.configFile, (err) => {
if (!err) {
resolve(true);
} else {
resolve(false);
}
});
});
},
writeConfigFile: (config) => {
return new Promise((resolve, reject) => {
fs.writeFile(paths.configFile, JSON.stringify(config, null, 2), (err) => {
if (err){
reject(err);
}
resolve();
});
});
},
loadConfigFile: () => {
return new Promise((resolve, reject) => {
fs.readFile(paths.configFile, (err, data) => {
if (err){
reject(err);
}
resolve(JSON.parse(data));
});
});
}
};
module.exports = config;