-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen-express.sh
More file actions
executable file
·100 lines (73 loc) · 1.7 KB
/
gen-express.sh
File metadata and controls
executable file
·100 lines (73 loc) · 1.7 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
#!/usr/bin/bash
mkdir $1
echo "created $1"
cd $1
echo "accessed $1"
# VARS
MODULES=(express dotenv bcrybt jsonwebtoken cookie-parser)
TEMP_ENGINE=()
DB_PROVIDER=()
# Args
for args in "$@"; do
shift
case "$args" in
'--pug') TEMP_ENGINE=(pug);;
'--ejs') TEMP_ENGINE=(ejs);;
'--mongoo') DB_PROVIDER+=(mongoose);;
'--mysql')
DB_PROVIDER+=(sequelize mysql2)
;;
esac
done
MODULES+=("${DB_PROVIDER[@]}")
MODULES+=("${TEMP_ENGINE[@]}")
createDirectories(){
local directories=(controllers routes views models middlewares config public)
for directory in "${directories[@]}"; do
mkdir "$directory"
echo "created $directory"
done
echo "Directories, Created!"
}
initProject(){
npm init -y
git init
}
installModules(){
local express_modules=("${MODULES[@]}")
for module in "${express_modules[@]}"; do
npm install "$module"
echo "installed $module"
done
#nodmon
npm install nodemon -D
echo "installed nodemon"
echo "Modules, Installed!"
}
createFiles(){
local files=(.env .gitignore index.js README.md)
for file in "${files[@]}"; do
touch "$file"
echo "created $file"
done
echo "Files, Created!"
}
writeBoilerplateCodeIndex(){
cat << EOL >> index.js
import express from "express"
const PORT = process.env.PORT || 3000
const App = express()
App.get("/", (req, res, next) => {
res.send("Si vis pacem, para bellum!")
})
App.listen(PORT, () => {
console.log("Listening to: "+PORT)
})
EOL
echo "Done with index.js"
}
initProject
createDirectories
createFiles
installModules
writeBoilerplateCodeIndex