59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
#!/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)
|