require('dotenv').config(); const fs = require('fs'); const path = require('path'); function copyIcon(src, dst) { if (!src) { console.warn(`Icon path for ${dst} is not defined in your environment variables`); return; } console.log(`Replacing icon ${dst} by ${src}`); if (!fs.existsSync(src)) { console.warn(`Icon file ${src} does not exist.`); return; } const destPath = path.join(__dirname, 'assets', dst); try { fs.copyFileSync(src, destPath); fs.chmodSync(destPath, 0o644); } catch(e) { console.warn(`Failed to copy logo ${e}`); } } function updatePackageJson() { const placeholders = { EXTENSION_NAME: process.env.EXTENSION_NAME || "devchat", PUBLISHER: process.env.PUBLISHER || "merico", ASSISTANT_NAME_EN: process.env.ASSISTANT_NAME_EN || "DevChat", ASSISTANT_NAME_ZH: process.env.ASSISTANT_NAME_ZH || "DevChat" } console.log(`Updating package.json, env: ${JSON.stringify(placeholders)}`); let packageJson = fs.readFileSync('package.json', 'utf8'); // Replace placeholders Object.entries(placeholders).forEach(([key, value]) => { const regex = new RegExp(`\\$\\{${key}\\}`, 'g'); packageJson = packageJson.replace(regex, value); }); fs.writeFileSync('package.json', packageJson); } copyIcon(process.env.EXTENSION_ICON, 'devchat.png'); copyIcon(process.env.SIDEBAR_ICON, 'devchat_icon.svg'); copyIcon(process.env.DIFF_APPLY_ICON, 'devchat_apply.svg'); updatePackageJson();