All New

user:thomas gists created by user

title:mygist gists with given title

description:sync gists with given description

filename:myfile.txt gists having files with given name

extension:yml gists having files with given extension

language:go gists having files with given language

topic:homelab gists with given topic

all:systemctl search all fields

Register

Login

All New Register Login

nuno

Joined 6 months ago

Recently created
Least recently created
Recently updated
Least recently updated
All gists 584

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 grep -A 15 "function rule::reapply_all" /etc/wireguard/wgctl/modules/rule.module.sh
2 function rule::reapply_all() {
3 local rule_name="${1:-}"
4 rule::require_exists "$rule_name" || return 1
5
6 local peers=()
7 mapfile -t peers < <(peers::with_rule "$rule_name")
8 [[ ${#peers[@]} -eq 0 ]] && return 0
9
10 local count=0

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 sed -n '98,170p' /etc/wireguard/wgctl/modules/rule.module.sh
2
3 # ============================================
4 # Rule Application
5 # ============================================
6
7 function rule::apply() {
8 local rule_name="${1:?rule_name required}"
9 local client_ip="${2:?client_ip required}"
10 local peer_name="${3:-}"

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 root@wireguard:/etc/wireguard# wgctl rule list --tree --base
2
3 ────────────────────────────────────────────────
4 Firewall Rules
5 ────────────────────────────────────────────────
6
7 NAME DESCRIPTION ALLOWS BLOCKS PEERS
8 ────────────────────────────────────────────────────────────────────────────────────────
9
10 ▸ Users

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 root@wireguard:/etc/wireguard# wgctl rule list --tree --base
2
3 ────────────────────────────────────────────────
4 Firewall Rules
5 ────────────────────────────────────────────────
6
7 NAME DESCRIPTION ALLOWS BLOCKS PEERS
8 ────────────────────────────────────────────────────────────────────────────────────────
9
10 ▸ Users

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 #!/usr/bin/env bash
2
3 # ============================================
4 # Lifecycle
5 # ============================================
6
7 function cmd::rule::on_load() {
8 flag::register --name
9 flag::register --desc
10 flag::register --block-ip

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 function cmd::rule::add() {
2 local name="" desc=""
3 local allow_ips=() block_ips=() block_ports=()
4 local dns_redirect=false
5
6 while [[ $# -gt 0 ]]; do
7 case "$1" in
8 --name) name="$2"; shift 2 ;;
9 --desc) desc="$2"; shift 2 ;;
10 --allow-ip) allow_ips+=("$2"); shift 2 ;;

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 def rule_list_data(rules_dir, meta_dir):
2 """Return all rule data including base rules and extends"""
3 import glob
4
5 # Count peers per rule from meta files
6 rule_peer_counts = {}
7 for f in glob.glob(f"{meta_dir}/*.meta"):
8 try:
9 with open(f) as mf:
10 meta = json.load(mf)

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 function cmd::rule::list() {
2 local rules_dir
3 rules_dir="$(ctx::rules)"
4
5 local rules=("${rules_dir}"/*.rule)
6 if [[ ! -f "${rules[0]}" ]]; then
7 log::wg "No rules configured"
8 return 0
9 fi

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 ef rule_inspect(rules_dir, rule_name):
2 """Show inheritance tree for a rule"""
3 try:
4 rule_file = find_rule_file(rules_dir, rule_name)
5 with open(rule_file) as f:
6 rule = json.load(f)
7 resolved = _rule_resolve_internal(rules_dir, rule_name)
8
9 # Output format: section|key|value
10 # Own rules

nuno / gistfile1.txt

0 likes
0 forks
1 files
Last active 5 months ago
1 def rule_resolve(rules_dir, rule_name, visited=None):
2 """Recursively resolve a rule with all its base rules merged"""
3 if visited is None:
4 visited = set()
5
6 if rule_name in visited:
7 raise ValueError(f"Circular dependency detected: {rule_name}")
8 visited.add(rule_name)
9
10 rule_file = os.path.join(rules_dir, f"{rule_name}.rule")
Newer Older

Powered by Opengist ⋅ Load: 99ms⋅

English
Čeština Deutsch English Español Français Magyar Italiano 日本語 Polski Português Русский Türkçe Українська 中文 繁體中文
⋅ KrilHub