From 3da7fe7cee32404927b400309ed373a50b9ea8a4 Mon Sep 17 00:00:00 2001 From: Noah Kleiner Date: Tue, 9 Mar 2021 12:42:33 +0100 Subject: [PATCH] tofu: Create path if not exists This commit is a follow-up to 56774408 which does not take into account the case that the parent directory of the known_hosts file does not already exist. --- tofu/tofu.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tofu/tofu.go b/tofu/tofu.go index 6a7a15e..e2fcebb 100644 --- a/tofu/tofu.go +++ b/tofu/tofu.go @@ -10,6 +10,7 @@ import ( "fmt" "io" "os" + "path/filepath" "sort" "strings" "sync" @@ -82,6 +83,10 @@ func (k *KnownHosts) WriteTo(w io.Writer) (int64, error) { // Load loads the known hosts entries from the provided path. func (k *KnownHosts) Load(path string) error { + if err := os.MkdirAll(filepath.Dir(path), os.ModePerm); err != nil { + return err + } + f, err := os.OpenFile(path, os.O_CREATE|os.O_RDONLY, 0644) if err != nil { return err