gistfile1.txt
· 947 B · Text
Исходник
function cmd::group::set_main() {
local group_name="" peer_name="" type=""
while [[ $# -gt 0 ]]; do
case "$1" in
--name) group_name="$2"; shift 2 ;;
--peer) peer_name="$2"; shift 2 ;;
--type) type="$2"; shift 2 ;;
*) log::error "Unknown flag: $1"; return 1 ;;
esac
done
[[ -z "$group_name" ]] && log::error "Missing --name" && return 1
[[ -z "$peer_name" ]] && log::error "Missing --peer" && return 1
# Resolve peer name
peer_name=$(peers::resolve_and_require "$peer_name" "$type") || return 1
# Verify peer is in the group
if ! group::has_peer "$group_name" "$peer_name"; then
log::error "Peer '${peer_name}' is not in group '${group_name}'"
log::info "Add them first: wgctl group peer add --name ${group_name} --peer ${peer_name}"
return 1
fi
peers::set_main_group "$peer_name" "$group_name"
log::wg_success "Main group for '${peer_name}' set to '${group_name}'"
}
| 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 | } |