mirror of
https://github.com/Nezumi-2711/cloudflare-gateway-pihole-scripts.git
synced 2026-09-22 20:01:04 +00:00
cleaned up rules code
This commit is contained in:
@@ -1,21 +1,13 @@
|
||||
import { createZeroTrustRule, getZeroTrustLists } from './lib/api.js';
|
||||
import { createZeroTrustRule, getZeroTrustLists } from "./lib/api.js";
|
||||
|
||||
;(async() => {
|
||||
const { result: lists } = await getZeroTrustLists();
|
||||
const filtered_lists = lists.filter(list => list.name.startsWith('CGPS List'));
|
||||
const { result: lists } = await getZeroTrustLists();
|
||||
const wirefilterExpression = lists.reduce((previous, current, index) => {
|
||||
if (!current.name.startsWith("CGPS List")) return previous;
|
||||
|
||||
let wirefilter_expression = '';
|
||||
// Remove the trailing ' or '
|
||||
if (index === lists.length - 1) return previous.slice(0, -4);
|
||||
|
||||
// Build the wirefilter expression
|
||||
for (const list of filtered_lists) {
|
||||
wirefilter_expression += `any(dns.domains[*] in \$${list.id}) or `;
|
||||
}
|
||||
// Remove the trailing ' or '
|
||||
if (wirefilter_expression.endsWith(' or ')) {
|
||||
wirefilter_expression = wirefilter_expression.slice(0, -4);
|
||||
}
|
||||
wirefilter_expression = wirefilter_expression.trim().replace('\n', '');
|
||||
if (!process.env.CI) console.log(`Firewall expression contains ${wirefilter_expression.length} characters, and checks against ${filtered_lists.length} filter lists.`)
|
||||
return `${previous} any(dns.domains[*] in \$${current.id}) or `;
|
||||
}, "");
|
||||
|
||||
await createZeroTrustRule(wirefilter_expression);
|
||||
})();
|
||||
await createZeroTrustRule(wirefilterExpression);
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
import { deleteZeroTrustRule, getZeroTrustRules } from './lib/api.js';
|
||||
import { deleteZeroTrustRule, getZeroTrustRules } from "./lib/api.js";
|
||||
|
||||
;(async() => {
|
||||
const { result: rules } = await getZeroTrustRules();
|
||||
const [filtered_rule] = rules.filter(rule => rule.name === "CGPS Filter Lists");
|
||||
const { result: rules } = await getZeroTrustRules();
|
||||
const cgpsRule = rules.find(({ name }) => name === "CGPS Filter Lists");
|
||||
|
||||
if (!filtered_rule) return console.warn("No rule with matching name found - this is not an issue if you haven't run the create script yet. Exiting.");
|
||||
(async () => {
|
||||
if (!cgpsRule) {
|
||||
console.warn(
|
||||
"No rule with matching name found - this is not an issue if you haven't run the create script yet. Exiting."
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Deleting rule`, process.env.CI ? "(redacted, running in CI)" : `"${filtered_rule.name}" with ID ${filtered_rule.id}`);
|
||||
|
||||
await deleteZeroTrustRule(filtered_rule.id);
|
||||
console.log(`Deleting rule ${cgpsRule.name}`);
|
||||
await deleteZeroTrustRule(cgpsRule.id);
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user