summaryrefslogtreecommitdiff
path: root/source/controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'source/controller.js')
-rw-r--r--source/controller.js42
1 files changed, 27 insertions, 15 deletions
diff --git a/source/controller.js b/source/controller.js
index c66df01..889e868 100644
--- a/source/controller.js
+++ b/source/controller.js
@@ -1,4 +1,5 @@
const fs = require('fs')
+const path = require('path')
const Method = require('./method')
const logger = require('./logger')()
@@ -6,23 +7,33 @@ const logger = require('./logger')()
class Controller {
constructor() {
this.main = new Promise((res, rej) => {
- fs.readdir('./scripts/', (err, files) => {
- if (err) {
- logger.Error(`${err.code}: Failed to read directory`)
- rej(`${err.code}: Failed to read directory`)
- }
+ if (fs.existsSync('./scripts/')) {
+ fs.readdir('./scripts/', (err, files) => {
+ if (err) {
+ logger.Error(`${err.code}: Failed to read directory`)
+ rej(`${err.code}: Failed to read directory`)
+ }
- this.require = new Map()
- files.forEach(file => {
- try {
- this.require.set(file.replace('.js', ''), require(`../scripts/${file}`)())
- } catch (err) {
- logger.Error(`${err.code}: Failed to read ${file}`)
- rej(`${err.code}: Failed to read ${file}`)
+ this.require = new Map()
+ files.forEach(file => {
+ try {
+ this.require.set(file.replace('.js', ''), require(`../scripts/${file}`)())
+ } catch (err) {
+ logger.Error(`${err.code}: Failed to read ${file}`)
+ rej(`${err.code}: Failed to read ${file}`)
+ }
+ })
+ res(this.require)
+ })
+ } else {
+ fs.mkdirSync('./scripts/')
+ fs.writeFile(path.join('./scripts/', 'index.js'), fs.readFileSync('./examples/index.js', 'utf-8'), (err) => {
+ if (err) {
+ logger.Error(`${err.code}: Error writing to file`)
+ rej(`${err.code}: Error writing to file`)
}
})
- res(this.require)
- })
+ }
}).then(output => {
return new Promise((res, rej) => {
const map = output
@@ -95,4 +106,5 @@ class Controller {
}
}
-module.exports = Controller
+module.exports = Controller
+