最終更新 1 month ago

nuno revised this gist 1 month ago. Go to revision

1 file changed, 27 insertions

gistfile1.txt(file created)

@@ -0,0 +1,27 @@
1 + function cmd::group::set_main() {
2 + local group_name="" peer_name="" type=""
3 + while [[ $# -gt 0 ]]; do
4 + case "$1" in
5 + --name) group_name="$2"; shift 2 ;;
6 + --peer) peer_name="$2"; shift 2 ;;
7 + --type) type="$2"; shift 2 ;;
8 + *) log::error "Unknown flag: $1"; return 1 ;;
9 + esac
10 + done
11 +
12 + [[ -z "$group_name" ]] && log::error "Missing --name" && return 1
13 + [[ -z "$peer_name" ]] && log::error "Missing --peer" && return 1
14 +
15 + # Resolve peer name
16 + peer_name=$(peers::resolve_and_require "$peer_name" "$type") || return 1
17 +
18 + # Verify peer is in the group
19 + if ! group::has_peer "$group_name" "$peer_name"; then
20 + log::error "Peer '${peer_name}' is not in group '${group_name}'"
21 + log::info "Add them first: wgctl group peer add --name ${group_name} --peer ${peer_name}"
22 + return 1
23 + fi
24 +
25 + peers::set_main_group "$peer_name" "$group_name"
26 + log::wg_success "Main group for '${peer_name}' set to '${group_name}'"
27 + }
Newer Older