Spaces:
Sleeping
Sleeping
| import fs from "fs"; | |
| import path from "path"; | |
| // Get current directory path | |
| const ROOT = process.cwd(); | |
| const DOCKER_ENV_PATH = path.join(ROOT, "docker"); | |
| // PostgreSQL settings for Docker environment | |
| const DOCKER_POSTGRES_SETTINGS = [ | |
| "# == DOCKER POSTGRES SETTINGS ==", | |
| "POSTGRES_URL=postgres://your_username:your_password@postgres:5432/better_chatbot", | |
| "POSTGRES_DB=better_chatbot", | |
| "POSTGRES_USER=your_username", | |
| "POSTGRES_PASSWORD=your_password", | |
| ].join("\n"); | |
| /** | |
| * Copy .env.example to .env if .env doesn't exist | |
| */ | |
| function copyEnvFile() { | |
| const envPath = path.join(ROOT, ".env"); | |
| const envExamplePath = path.join(ROOT, ".env.example"); | |
| if (!fs.existsSync(envPath)) { | |
| try { | |
| console.warn(".env file not found. Copying from .env.example..."); | |
| fs.copyFileSync(envExamplePath, envPath); | |
| console.log(".env file has been created."); | |
| console.warn( | |
| "Important: You may need to edit the .env file to set your API keys.", | |
| ); | |
| } catch (error) { | |
| console.error("Error occurred while creating .env file."); | |
| console.error(error); | |
| return false; | |
| } | |
| } else { | |
| console.info(".env file already exists. Skipping..."); | |
| } | |
| if (!fs.existsSync(DOCKER_ENV_PATH + "/.env")) { | |
| try { | |
| // Copy .env.example content first | |
| const envExampleContent = fs.readFileSync(envExamplePath, "utf-8"); | |
| // Replace existing POSTGRES_URL with all Docker PostgreSQL settings | |
| const dockerEnvContent = envExampleContent.replace( | |
| /POSTGRES_URL=postgres:\/\/.*$/m, | |
| DOCKER_POSTGRES_SETTINGS, | |
| ); | |
| fs.writeFileSync(DOCKER_ENV_PATH + "/.env", dockerEnvContent, "utf-8"); | |
| console.log( | |
| "/docker/.env file has been created with PostgreSQL settings.", | |
| ); | |
| } catch (error) { | |
| console.error("Error occurred while creating /docker/.env file."); | |
| console.error(error); | |
| return false; | |
| } | |
| } else { | |
| console.info("/docker/.env file already exists. Skipping..."); | |
| } | |
| return true; | |
| } | |
| // Execute copy operation | |
| const result = copyEnvFile(); | |
| process.exit(result ? 0 : 1); | |