diff --git a/Build/build-internal-cdn-rules.ts b/Build/build-internal-cdn-rules.ts index da64319f..2b226985 100644 --- a/Build/build-internal-cdn-rules.ts +++ b/Build/build-internal-cdn-rules.ts @@ -1,4 +1,3 @@ -import fsp from 'fs/promises'; import path from 'path'; import * as tldts from 'tldts'; import { processLine } from './lib/process-line'; @@ -67,9 +66,7 @@ export const buildInternalCDNDomains = task(import.meta.path, async () => { processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/stream.conf')), processLocalRuleSet(path.resolve(import.meta.dir, '../List/non_ip/telegram.conf')), processLocalDomainSet(path.resolve(import.meta.dir, '../List/domainset/cdn.conf')), - processLocalDomainSet(path.resolve(import.meta.dir, '../List/domainset/download.conf')), - - fsp.mkdir(path.resolve(import.meta.dir, '../List/internal'), { recursive: true }) + processLocalDomainSet(path.resolve(import.meta.dir, '../List/domainset/download.conf')) ]))[0]; return compareAndWriteFile( diff --git a/Build/build-internal-reverse-chn-cidr.ts b/Build/build-internal-reverse-chn-cidr.ts index 94f1bf92..45afc0a5 100644 --- a/Build/build-internal-reverse-chn-cidr.ts +++ b/Build/build-internal-reverse-chn-cidr.ts @@ -1,7 +1,6 @@ import { fetchRemoteTextAndReadByLine } from './lib/fetch-text-by-line'; import { processLineFromReadline } from './lib/process-line'; import path from 'path'; -import fsp from 'fs/promises'; import { task } from './lib/trace-runner'; import { exclude, merge } from 'fast-cidr-tools'; @@ -27,10 +26,7 @@ const RESERVED_IPV4_CIDR = [ ]; export const buildInternalReverseChnCIDR = task(import.meta.path, async () => { - const cidr = (await Promise.all([ - processLineFromReadline(await fetchRemoteTextAndReadByLine('https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt')), - fsp.mkdir(path.resolve(import.meta.dir, '../List/internal'), { recursive: true }) - ]))[0]; + const cidr = await processLineFromReadline(await fetchRemoteTextAndReadByLine('https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt')); const reversedCidr = merge( exclude( diff --git a/Build/build-public.ts b/Build/build-public.ts index 6391285f..c207fef6 100644 --- a/Build/build-public.ts +++ b/Build/build-public.ts @@ -1,31 +1,37 @@ import path from 'path'; -import fsp from 'fs/promises'; import { task } from './lib/trace-runner'; import { treeDir } from './lib/tree-dir'; import type { TreeType, TreeTypeArray } from './lib/tree-dir'; +import listDir from '@sukka/listdir'; const rootPath = path.resolve(import.meta.dir, '../'); const publicPath = path.resolve(import.meta.dir, '../public'); const folderAndFilesToBeDeployed = [ - 'Mock', - 'List', - 'Clash', - 'Modules', - 'Script', + `Mock${path.sep}`, + `List${path.sep}`, + `Clash${path.sep}`, + `Modules${path.sep}`, + `Script${path.sep}`, 'LICENSE' ]; export const buildPublic = task(import.meta.path, 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 filesToBeCopied = (await listDir( + rootPath, { + ignoreHidden: true, + ignorePattern: /node_modules|Build|public/ + } + )).filter(file => folderAndFilesToBeDeployed.some(folderOrFile => file.startsWith(folderOrFile))); + + await Promise.all(filesToBeCopied.map(file => { + const src = path.resolve(rootPath, file); + const dest = path.resolve(publicPath, file); + + return Bun.write(dest, Bun.file(src)); + })); const html = generateHtml(await treeDir(publicPath)); - return Bun.write(path.join(publicPath, 'index.html'), html); }); @@ -99,7 +105,7 @@ function generateHtml(tree: TreeTypeArray) {
Made by Sukka | Source @ GitHub | Licensed under AGPL-3.0
-Last Build: 2023-12-03T16:54:15.820Z
+Last Build: ${new Date().toISOString()}