#!/usr/bin/env zsh set-git-signing-key() { local key_path="$1" if [[ -z "$key_path" ]]; then echo "Error: Please provide a path to the private key to use to sign git commits." >&2 return 1 fi # Check if key exists if [[ ! -f "$key_path" ]]; then echo "Error: Key file does not exist: $key_path" >&2 return 1 fi local absolute_path=$(readlink -f "$key_path") ln -sf "$absolute_path" ~/.ssh/git ln -sf "${absolute_path}.pub" ~/.ssh/git.pub if [[ $? -eq 0 ]]; then echo "Successfully linked git signing key" return 0 else echo "Error: Failed to create symbolic link" >&2 return 1 fi } generate-ssh-key() { local key_name="$1" local key_description="$2" if [[ -z "$key_name" ]]; then echo "Error: Please provide a name for the key." >&2 return 1 fi if [[ -z "$key_description" ]]; then echo "Error: Please provide a description for the key." >&2 return 1 fi ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_${key_name}_$(date +%Y-%m-%d) -C ${key_description} }