UNPKG

boilerplate.js

Version:

Development Tools

44 lines (36 loc) 1.88 kB
global.ConfigPATH = path.resolve('./config.json'); global.browserSyncPATH = path.resolve('./config.browsersync.txt'); try { global.jsInit = path.resolve(path.parse(config.js.input).dir + '/init.js'); } catch (error) {} fs.ensureFileSync(ConfigPATH); fs.ensureFileSync(global.browserSyncPATH); if (fs.readFileSync(ConfigPATH).toString().length === 0) fs.writeFileSync(ConfigPATH, '{}'); global.config = require('../../../config.json'); try { config.js.dir = path.parse(config.js.input).dir; } catch (error) {} try { config.js.base = path.parse(config.js.input).base; } catch (error) {} try { config.css.dir = path.parse(config.css.input).dir; } catch (error) {} try { config.css.base = path.parse(config.css.input).base; } catch (error) {} try { if(!config.js.public) config.js.public = /window\.PublicPathJS\s*?=\s*?['"](.*)['"];/.exec(fs.readFileSync(global.jsInit))[1]; } catch (error) {} try { if(!config.css.public) config.css.public = /window\.PublicPathCSS\s*?=\s*?['"](.*)['"];/.exec(fs.readFileSync(global.jsInit))[1]; } catch (error) {} config.set = (option, path, cb) => { config[option] = path; config.update(); cb && cb(false); }; config.check = (option, cb, alt) => { if (config[option]) { cb && cb(true); } else { var title = toTitleCase(option); console.log(`${title} Path Is Not Set`.bgRed); ask.confirm('Would You Like To Set It Now?'.yellow, yes => { ask.input('Enter Path', (path) => { config.set(option, path, cb); }, alt || './Boilerplate/src/' + option); }, no => exit()); } }; config.update = () => { fs.writeFileSync(global.ConfigPATH, JSON.stringify(config, null, 2)); console.log(`${global.ConfigPATH} Updated`.grey); }; config.update();