#!/usr/bin/env node

// Script pour changer facilement le thème clair de l'application Remanso
// Usage: pnpm run theme:light [theme-name]

import { readFileSync, writeFileSync } from "fs"
import { join } from "path"

import { commitTheme } from "./change-theme"

// Chemins vers les fichiers
const themeConfigPath = join(__dirname, "..", "src", "theme.config.ts")
const indexPath = join(__dirname, "..", "index.html")
const appCssPath = join(__dirname, "..", "src", "styles", "app.css")

// Vérifier les arguments
if (process.argv.length < 3) {
  console.log("Usage: pnpm run theme:light [theme-name]")
  console.log("Exemple: pnpm run theme:light cupcake")
  process.exit(1)
}

// Mode fixé à light pour ce script
const mode = "light"
const newTheme = process.argv[2] // nom du nouveau thème

// Lire le contenu actuel du fichier de configuration
let themeConfigContent = readFileSync(themeConfigPath, "utf8")

// Remplacer la valeur du thème clair
themeConfigContent = themeConfigContent.replace(
  /light:\s*['"][^'"]*['"],/,
  `light: '${newTheme}',`
)

// Écrire le contenu mis à jour dans le fichier
writeFileSync(themeConfigPath, themeConfigContent)

// Mettre à jour également le fichier index.html
let indexContent = readFileSync(indexPath, "utf8")
indexContent = indexContent.replace(
  /data-theme="[^"]*"/,
  `data-theme="${newTheme}"`
)
writeFileSync(indexPath, indexContent)

// Mettre à jour également le fichier app.css pour le thème --default
let appCssContent = readFileSync(appCssPath, "utf8")
appCssContent = appCssContent.replace(
  /(\s+)([a-zA-Z0-9-]+)(\s+--default,)/,
  `$1${newTheme}$3`
)
writeFileSync(appCssPath, appCssContent)

commitTheme(mode, newTheme)

console.log(`Thème ${mode} mis à jour avec succès vers: ${newTheme}`)
process.exit(0)
