最終更新 1 month ago

修正履歴 49ad2a1972e0017190bcb58c8d86e9ed11201b14

gistfile1.txt Raw
1function cmd::block::run() {
2 local name="" identity="" type="" block_name=""
3 local ips=() subnets=() ports=() services=()
4 local quiet=false force=false
5
6 while [[ $# -gt 0 ]]; do
7 case "$1" in
8 --name) name="$2"; shift 2 ;;
9 --identity) identity="$2"; shift 2 ;;
10 --type) type="$2"; shift 2 ;;
11 --ip) ips+=("$2"); shift 2 ;;
12 --block-name) block_name="$2"; shift 2 ;;
13 --service) services+=("$2"); shift 2 ;;
14 --force) force=true; shift ;;
15 --quiet) quiet=true; shift ;;
16 --subnet) subnets+=("$2"); shift 2 ;;
17 --port) ports+=("$2"); shift 2 ;;
18 --help) cmd::block::help; return ;;
19 *)
20 log::error "Unknown flag: $1"
21 cmd::block::help
22 return 1
23 ;;
24 esac
25 done
26
27 # --identity: block all peers for this identity
28 if [[ -n "$identity" ]]; then
29 cmd::block::_block_identity "$identity" "$quiet" \
30 "${ips[@]+"${ips[@]}"}" || return 1
31 return 0
32 fi
33
34 [[ -z "$name" ]] && {
35 log::error "Missing required flag: --name or --identity"
36 cmd::block::help
37 return 1
38 }
39
40 name=$(peers::resolve_and_require "$name" "$type") || return 1
41function cmd::unblock::run() {
42 local name="" identity="" type=""
43 local ips=() subnets=() ports=() services=()
44 local all=false quiet=false force=false
45
46 while [[ $# -gt 0 ]]; do
47 case "$1" in
48 --name) name="$2"; shift 2 ;;
49 --identity) identity="$2"; shift 2 ;;
50 --type) type="$2"; shift 2 ;;
51 --ip) ips+=("$2"); shift 2 ;;
52 --force) force=true; shift ;;
53 --quiet) quiet=true; shift ;;
54 --subnet) subnets+=("$2"); shift 2 ;;
55 --port) ports+=("$2"); shift 2 ;;
56 --service) services+=("$2"); shift 2 ;;
57 --all) all=true; shift ;;
58 --help) cmd::unblock::help; return ;;
59 *)
60 log::error "Unknown flag: $1"
61 cmd::unblock::help
62 return 1
63 ;;
64 esac
65 done
66
67 # --identity: unblock all peers for this identity
68 if [[ -n "$identity" ]]; then
69 cmd::unblock::_unblock_identity "$identity" "$quiet" || return 1
70 return 0
71 fi
72
73 if [[ -z "$name" ]]; then
74 log::error "Missing required flag: --name or --identity"
75 cmd::unblock::help
76 return 1
77 fi
78
79 name=$(peers::resolve_and_require "$name" "$type") || return 1
80
81