Built motion from commit f861bcb808219e66da88ba48b61bddb35224a65e. Version 3.0.0...
[motion-next.git] / print-config.js
1 /**
2  * Usage
3  * node print-config [path-to-env-file]
4  *
5  * if no path-to-env-file is provided, it will use default dotenv settings
6  * i.e. use environment variables and .env file if present
7  */
8
9 /* eslint-disable no-console */
10 const path = require('path')
11 const fs = require('fs')
12
13 const isDeployment = !fs.existsSync('./src') && fs.existsSync('./server')
14
15 const envFile = process.argv[2]
16   ? path.resolve(__dirname, process.argv[2])
17   : path.resolve(__dirname, './.env')
18 let opts = undefined
19 if (fs.existsSync(envFile)) {
20   opts = {
21     path: envFile,
22   }
23 } else {
24   console.warn(`${envFile} not found, using defaults`)
25 }
26 require('dotenv').config(opts)
27
28 const appFolder = isDeployment ? 'server' : 'src'
29 require(`./${appFolder}/globals`)
30 const {
31   parseEnvVariables,
32   getRelevantProcessVariables,
33 } = require(`./${appFolder}/config/parse-env-variables`)
34 const { getConfig } = require(`./${appFolder}/config/get-config`)
35
36 try {
37   const envs = getRelevantProcessVariables()
38   const defaultedEnvs = parseEnvVariables()
39   const config = getConfig()
40
41   console.log('Your environment variables:')
42   console.log(envs)
43   console.log('\nYour environment variables with default values:')
44   console.log(defaultedEnvs)
45   console.log('\nMotion Configuration:')
46   console.log(config)
47 } catch {
48   console.log('\u001b[31;1mYour configuration is not valid!\u001b[0m')
49   // eslint-disable-next-line no-process-exit
50   process.exit(1)
51 }