#!/bin/sh usage() { echo "Usage: vpn-client.sh " echo "hostname: Name of the new host" exit 1 } get_last_ip() { last_ocurrence=$(grep '10.9.0' "$networking_file" | tail -1) last_digit=$(echo "$last_ocurrence" | cut -d . -f 4 | cut -c 1) } generate_certificates() { mkdir "$certificates_directory/$hostname" cd "$certificates_directory/$hostname" || exit wg genkey | tee "$hostname".key | wg pubkey >"$hostname".pub } generate_config() { private_key=$(cat "$hostname.key") get_last_ip last_ip=$((last_digit + 1)) cd "$config_directory" || exit sed -e "s/private_key_placeholder/$private_key/g" -e "s/ip_placeholder/$last_ip/g" "$config_file" >"$hostname".conf } if [ $# != 1 ]; then usage fi hostname=$1 networking_file="/etc/nixos/modules/networking.nix" certificates_directory="/home/coace/.wg" config_directory="/vault/config/wireguard" config_file="$config_directory/placeholder.conf" generate_certificates generate_config