From 10d49bf6e508f6f94dec72dce2c7af19127401cc Mon Sep 17 00:00:00 2001
From: Kevin Lyda <kevin@lyda.ie>
Date: Wed, 14 May 2025 23:02:58 +0100
Subject: [PATCH] Create the ssh dir if it's missing

---
 key/key.go | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/key/key.go b/key/key.go
index cb4ade4..92f1373 100644
--- a/key/key.go
+++ b/key/key.go
@@ -20,7 +20,12 @@ func Add(login, public string) error {
 
 	keyline := fmt.Sprintf(keytemplate, bulletin, login, public)
 
-	keyfile := path.Join(xdg.Home, ".ssh", "authorized_keys")
+	sshdir := path.Join(xdg.Home, ".ssh")
+	err = os.MkdirAll(sshdir, 0700)
+	if err != nil {
+		return err
+	}
+	keyfile := path.Join(sshdir, "authorized_keys")
 
 	f, err := os.OpenFile(keyfile, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
 	if err != nil {
-- 
GitLab