/** * Password Hash Injector for Weight Tracker * * This script injects the password hash from environment variables * into the HTML file before it's served to the client. */ const fs = require('fs'); const path = require('path'); // Default password hash (can be overridden via environment variables) const DEFAULT_HASH = '$2a$10$EgxHKjDDFcZKtQY9hl/N4.QvEQHCXVnQXw9dzFYlUDVKOcLMGp9eq'; // hash for "password" /** * Inject password hash into HTML file * @param {string} htmlPath - Path to the HTML file * @param {string} passwordHash - Bcrypt password hash */ function injectPasswordHash(htmlPath, passwordHash) { try { // Read the HTML file let html = fs.readFileSync(htmlPath, 'utf8'); // Replace the placeholder with the actual password hash html = html.replace('$PASSWORD_HASH$', passwordHash); // Write the modified HTML back to the file fs.writeFileSync(htmlPath, html); console.log(`Password hash injected into ${htmlPath}`); } catch (error) { console.error(`Error injecting password hash: ${error.message}`); } } // Get password hash from environment variable const passwordHash = process.env.PASSWORD_HASH || DEFAULT_HASH; // Path to the HTML file const htmlPath = path.join(__dirname, 'public', 'index.html'); // Inject password hash injectPasswordHash(htmlPath, passwordHash); console.log('Password hash injection complete');