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 fs = require('fs'); const fse = require('fs-extra'); 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', 'README.md' ]; const buildPublicHtml = task(__filename, async () => { await fse.ensureDir(publicPath); await Promise.all(folderAndFilesToBeDeployed.map(dir => fse.copy(path.resolve(rootPath, dir), path.resolve(publicPath, dir)))); const list = await listDir(publicPath, { ignoreHidden: true, ignorePattern: /node_modules|Build|.DS_Store|\.(json|html|md|js)|LICENSE/ }); const html = template(list); await fs.promises.writeFile(path.join(publicPath, 'index.html'), html, 'utf-8'); }); module.exports.buildPublicHtml = buildPublicHtml; if (require.main === module) { 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()}