diff --git a/back/app.ts b/back/app.ts index ee2f64b6..68676bd8 100644 --- a/back/app.ts +++ b/back/app.ts @@ -9,6 +9,8 @@ import Logger from './loaders/logger'; async function startServer() { const app = express(); + await require('./loaders/initFile').default(); + await require('./loaders/sentry').default({ expressApp: app }); await require('./loaders/db').default(); diff --git a/back/config/index.ts b/back/config/index.ts index 02021b2f..61e89eb5 100644 --- a/back/config/index.ts +++ b/back/config/index.ts @@ -32,16 +32,10 @@ const authDbFile = path.join(rootPath, 'db/auth.db'); const dependenceDbFile = path.join(rootPath, 'db/dependence.db'); const versionFile = path.join(rootPath, 'src/version.ts'); -const configFound = dotenv.config({ path: confFile }); - if (envFound.error) { throw new Error("⚠️ Couldn't find .env file ⚠️"); } -if (configFound.error) { - throw new Error("⚠️ Couldn't find config.sh file ⚠️"); -} - export default { port: parseInt(process.env.PORT as string, 10), cronPort: parseInt(process.env.CRON_PORT as string, 10), diff --git a/back/loaders/initFile.ts b/back/loaders/initFile.ts new file mode 100644 index 00000000..09bddf13 --- /dev/null +++ b/back/loaders/initFile.ts @@ -0,0 +1,46 @@ +import fs from 'fs'; +import path from 'path'; +import dotenv from 'dotenv'; +import Logger from './logger'; +import { fileExist } from '../config/util'; + +const rootPath = process.cwd(); +const confFile = path.join(rootPath, 'config/config.sh'); +const sampleConfigFile = path.join(rootPath, 'sample/config.sample.sh'); +const sampleAuthFile = path.join(rootPath, 'sample/auth.sample.json'); +const authConfigFile = path.join(rootPath, 'config/auth.json'); +const configPath = path.join(rootPath, 'config/'); +const scriptPath = path.join(rootPath, 'scripts/'); +const logPath = path.join(rootPath, 'log/'); + +export default async () => { + const authFileExist = await fileExist(authConfigFile); + const confFileExist = await fileExist(confFile); + const scriptDirExist = await fileExist(scriptPath); + const logDirExist = await fileExist(logPath); + const configDirExist = await fileExist(configPath); + + if (!configDirExist) { + fs.mkdirSync(configPath); + } + + if (!authFileExist) { + fs.writeFileSync(authConfigFile, fs.readFileSync(sampleAuthFile)); + } + + if (!confFileExist) { + fs.writeFileSync(confFile, fs.readFileSync(sampleConfigFile)); + } + + if (!scriptDirExist) { + fs.mkdirSync(scriptPath); + } + + if (!logDirExist) { + fs.mkdirSync(logPath); + } + + dotenv.config({ path: confFile }); + + Logger.info('✌️ Init file down'); +};