diff options
Diffstat (limited to 'zsh/functions')
| -rw-r--r-- | zsh/functions/ssh-key-helpers.zsh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/zsh/functions/ssh-key-helpers.zsh b/zsh/functions/ssh-key-helpers.zsh new file mode 100644 index 0000000..e9b7900 --- /dev/null +++ b/zsh/functions/ssh-key-helpers.zsh @@ -0,0 +1,46 @@ +#!/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} +} |