| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * Post install script: create or replace the symlink .env
- * to the .env file matching the current environment
- *
- * To force an hostname, define an env variable named HOST :
- *
- * HOST=ci node ./env/setupEnv.mjs
- *
- */
- import os from 'os'
- import fs from 'fs'
- import { fileURLToPath } from 'node:url'
- import path from 'path'
- const projectDir = path.join(path.dirname(fileURLToPath(import.meta.url)), '..')
- const hostname = process.env.HOST ?? os.hostname()
- const environments = {
- app: '.env.docker',
- 'prod-v2': '.env.prod',
- 'test-v2': '.env.test',
- test1: '.env.test1',
- test2: '.env.test2',
- test3: '.env.test3',
- test4: '.env.test4',
- test5: '.env.test5',
- ci: '.env.ci',
- }
- if (!environments.hasOwnProperty(hostname)) {
- throw Error('Critical : unknown environment [' + hostname + ']')
- }
- const targetEnvFile = path.join(projectDir, 'env', environments[hostname])
- const mainEnvFile = path.join(projectDir, '.env')
- fs.unlink(mainEnvFile, (err) => {
- // 'ENOENT' is the error code for "no such file or directory", we ignore this one
- if (err && err.code !== 'ENOENT') {
- throw err
- }
- console.log(`${mainEnvFile} was deleted`)
- })
- fs.symlink(targetEnvFile, '.env', 'file', (err) => {
- if (err) {
- throw err
- }
- console.log(`Symlink created : ${mainEnvFile} -> ${targetEnvFile}`)
- })
|