MovixOpenSource/app/scripts/build-userscript.js
Movix 1401dc20f3 tird release
mon compte github a été détecté comme du spam je crois
2026-04-28 17:55:00 +02:00

43 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
/**
* Lit le userscript depuis ../userscript/movix.user.js,
* supprime le header ==UserScript==,
* et génère src/injection/userscript-source.ts avec le contenu en string.
*/
import { readFileSync, writeFileSync } from 'fs';
import { resolve, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const userscriptPath = resolve(__dirname, '../../userscript/movix.user.js');
const outputPath = resolve(__dirname, '../src/injection/userscript-source.ts');
let source = readFileSync(userscriptPath, 'utf-8');
// Supprime le bloc ==UserScript== header
source = source.replace(/\/\/ ==UserScript==[\s\S]*?\/\/ ==\/UserScript==\s*/, '');
// Échappe les backticks et les ${} pour l'inclusion dans un template literal
const escaped = source
.replace(/\\/g, '\\\\')
.replace(/`/g, '\\`')
.replace(/\$\{/g, '\\${');
const output = `/**
* Source du userscript Movix.
*
* AUTO-GÉNÉRÉ par scripts/build-userscript.js
* Ne pas modifier manuellement.
*
* Pour régénérer : node scripts/build-userscript.js
*/
export const USERSCRIPT_SOURCE = \`${escaped}\`;
`;
writeFileSync(outputPath, output, 'utf-8');
console.log(`[build-userscript] Généré: ${outputPath}`);
console.log(`[build-userscript] Taille du userscript: ${(source.length / 1024).toFixed(1)} KB`);