mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-12 01:00:34 +08:00
Add CloudMounter Rules
This commit is contained in:
parent
3dfb07920e
commit
611dc7183a
34
Build/build-cloudmounter-rules.ts
Normal file
34
Build/build-cloudmounter-rules.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import path from 'path';
|
||||
import { DOMAINS, PROCESS_NAMES } from '../Source/non_ip/cloudmounter';
|
||||
import { SHARED_DESCRIPTION } from './lib/constants';
|
||||
import { createRuleset } from './lib/create-file';
|
||||
import { task } from './lib/trace-runner';
|
||||
|
||||
const outputSurgeDir = path.resolve(import.meta.dir, '../List');
|
||||
const outputClashDir = path.resolve(import.meta.dir, '../Clash');
|
||||
|
||||
export const buildCloudMounterRules = task(import.meta.path, async () => {
|
||||
// AND,((SRC-IP,192.168.1.110), (DOMAIN, example.com))
|
||||
|
||||
const results = DOMAINS.flatMap(domain => {
|
||||
return PROCESS_NAMES.map(process => {
|
||||
return `AND,((DOMAIN-SUFFIX,${domain}), (PROCESS-NAME, ${process}))`;
|
||||
});
|
||||
});
|
||||
|
||||
const description = SHARED_DESCRIPTION;
|
||||
|
||||
return Promise.all(createRuleset(
|
||||
'Sukka\'s Ruleset - CloudMounter / RaiDrive',
|
||||
description,
|
||||
new Date(),
|
||||
results,
|
||||
'domainset',
|
||||
path.resolve(outputSurgeDir, 'non_ip', 'cloudmounter.conf'),
|
||||
path.resolve(outputClashDir, 'non_ip', 'cloudmounter.txt')
|
||||
));
|
||||
});
|
||||
|
||||
if (import.meta.main) {
|
||||
buildCloudMounterRules();
|
||||
}
|
||||
@ -24,6 +24,7 @@ import { buildPublic } from './build-public';
|
||||
import { downloadMockAssets } from './download-mock-assets';
|
||||
|
||||
import type { TaskResult } from './lib/trace-runner';
|
||||
import { buildCloudMounterRules } from './build-cloudmounter-rules';
|
||||
|
||||
(async () => {
|
||||
console.log('Bun version:', Bun.version, Bun.revision);
|
||||
@ -74,6 +75,8 @@ import type { TaskResult } from './lib/trace-runner';
|
||||
|
||||
const downloadMockAssetsPromise = downloadMockAssets();
|
||||
|
||||
const buildCloudMounterRulesPromise = downloadPreviousBuildPromise.then(() => buildCloudMounterRules());
|
||||
|
||||
const stats = await Promise.all([
|
||||
downloadPreviousBuildPromise,
|
||||
buildCommonPromise,
|
||||
@ -93,6 +96,7 @@ import type { TaskResult } from './lib/trace-runner';
|
||||
buildStreamServicePromise,
|
||||
buildMicrosoftCdnPromise,
|
||||
buildSSPanelUIMAppProfilePromise,
|
||||
buildCloudMounterRulesPromise,
|
||||
downloadMockAssetsPromise
|
||||
]);
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ export async function compareAndWriteFile(linesA: string[], filePath: string) {
|
||||
}, picocolors.gray);
|
||||
}
|
||||
|
||||
export const withBannerArray = (title: string, description: string[], date: Date, content: string[]) => {
|
||||
export const withBannerArray = (title: string, description: string[] | readonly string[], date: Date, content: string[]) => {
|
||||
return [
|
||||
'#########################################',
|
||||
`# ${title}`,
|
||||
@ -96,7 +96,7 @@ export const withBannerArray = (title: string, description: string[], date: Date
|
||||
};
|
||||
|
||||
export const createRuleset = (
|
||||
title: string, description: string[], date: Date, content: string[],
|
||||
title: string, description: string[] | readonly string[], date: Date, content: string[],
|
||||
type: 'ruleset' | 'domainset', surgePath: string, clashPath: string
|
||||
) => {
|
||||
const surgeContent = withBannerArray(title, description, date, content);
|
||||
|
||||
9
Source/non_ip/cloudmounter.ts
Normal file
9
Source/non_ip/cloudmounter.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export const DOMAINS = [
|
||||
'DOMAIN-SUFFIX,sharepoint.com',
|
||||
'DOMAIN,www.googleapis.com'
|
||||
];
|
||||
|
||||
export const PROCESS_NAMES = [
|
||||
'CloudMounter'
|
||||
// 'RaiDrive'
|
||||
];
|
||||
@ -17,6 +17,7 @@
|
||||
},
|
||||
"include": [
|
||||
"./Source/**/*.js",
|
||||
"./Build/**/*.ts"
|
||||
"./Build/**/*.ts",
|
||||
"Source/**/*.ts"
|
||||
]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user