Sukka Surge Ruleset Server
Made by Sukka | Source @ GitHub | Licensed under AGPL-3.0
Last Build: ${new Date().toISOString()}
-
${urlList.sort().map(url => `
- ${url} `).join('')}
const listDir = require('@sukka/listdir'); const path = require('path'); const fsp = require('fs/promises'); const { task } = require('./lib/trace-runner'); const rootPath = path.resolve(__dirname, '../'); const publicPath = path.resolve(__dirname, '../public'); const folderAndFilesToBeDeployed = [ 'Assets', 'List', 'Clash', 'Modules', 'Script', 'LICENSE' ]; const buildPublicHtml = task(__filename, async () => { await fsp.mkdir(publicPath, { recursive: true }); await Promise.all(folderAndFilesToBeDeployed.map(dir => fsp.cp( path.resolve(rootPath, dir), path.resolve(publicPath, dir), { force: true, recursive: true } ))); const list = await listDir(publicPath, { ignoreHidden: true, ignorePattern: /node_modules|Build|.DS_Store|\.(json|html|md|js)|LICENSE/ }); const html = template(list); return Bun.write(path.join(publicPath, 'index.html'), html); }); module.exports.buildPublicHtml = buildPublicHtml; if (import.meta.main) { buildPublicHtml(); } /** * @param {string[]} urlList * @returns {string} */ function template(urlList) { return `
Made by Sukka | Source @ GitHub | Licensed under AGPL-3.0
Last Build: ${new Date().toISOString()}