最後活躍 1 month ago

gistfile1.txt 原始檔案
1function 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}