-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathbuild.js
More file actions
127 lines (122 loc) · 2.96 KB
/
build.js
File metadata and controls
127 lines (122 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
require('dotenv').config();
var fs = require("fs");
var {optionError} = require('./lib/InternalModules')
let regionSet = [
"us-east-2",
"us-east-1",
"us-west-1",
"us-west-2",
"af-south-1",
"ap-east-1",
"ap-south-1",
"ap-northeast-2",
"ap-southeast-1",
"ap-southeast-2",
"ap-northeast-1",
"ca-central-1",
"cn-north-1",
"cn-northwest-1",
"eu-central-1",
"eu-west-1",
"eu-west-2",
"eu-west-3",
"eu-north-1",
"me-south-1",
"sa-east-1",
"us-gov-east-1",
"us-gov-west-1"
];
function createFile(file, contents, callback) {
if(fs.existsSync(file)){
let err = `file ${file} already exists`
if(callback && typeof callback === 'function') callback(null, err)
else return data;
}
else {
fs.writeFile(file, contents, (err) => {
if (err) {
if(callback && typeof callback === 'function') callback(new Error(err))
else throw new Error(err);
}
else {
let data = `Created the ${file} file`
if(callback && typeof callback === 'function') callback(null, data)
else return data;
}
})
}
}
function createDir(dir, callback){
if (fs.existsSync(dir)){
let err = (`directory ${dir} already exists`)
if(callback && typeof callback === 'function') callback(null, err)
else return err
}
else {
fs.mkdir(dir, (err) => {
if (err) {
if(callback && typeof callback === 'function') callback(new Error(err))
else throw new Error(err);
}
else {
let data = `Created the ${dir} directory`
if(callback && typeof callback === 'function') callback(null, data)
else return data;
}
});
}
}
function initBuild(region, profile, callback){
let env_file = "";
try {
createFile('./settings.json', '{}', function(err, data){
if(err) throw new Error(err)
else console.log(data)
})
createDir('./forms', function(err, data){
if(err) throw new Error(err)
else console.log(data)
})
if(profile){
if(/^[a-zA-Z0-9]*$/.test(profile)){
env_file += `\nAWS_PROFILE=${profile}`
}
else{
let err = "AWS Profile invalid. Only alphanumeric characters accepted. No spaces.";
throw new Error(err);
}
}
if(region){
if(regionSet.includes(region)){
env_file += `\nAWS_REGION=${region}`
}
else {
let err = "Invalid AWS region code";
throw new Error(err)
}
}
createFile('./.env', env_file, function(err, data){
if(err) throw new Error(err)
else {
//console.log(data)
createFile('./.gitignore', '.env', function(err, data){
if(err) throw new Error(err)
else {
//console.log(data)
if(callback && typeof callback === 'function'){
callback(null, 'Success');
}
}
})
}
});
}
catch(err){
optionError(err, callback)
}
}
module.exports = {
initBuild,
createDir,
createFile
}