diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-04-11 16:09:20 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-04-11 16:09:20 -0400 |
| commit | 67f29298ca79da839f4fdfe9ffad8d39a703b124 (patch) | |
| tree | 4844d44bc39ab723e9ec3473255d8c13fdac829e | |
| parent | fe46729489026b3c26dda79280e7b876ee09ae37 (diff) | |
| download | hose-67f29298ca79da839f4fdfe9ffad8d39a703b124.zip | |
create data directory
| -rw-r--r-- | key/file.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/key/file.go b/key/file.go index f96190a..676b204 100644 --- a/key/file.go +++ b/key/file.go @@ -6,6 +6,8 @@ import ( "github.com/adrg/xdg" "os" "path/filepath" + + "git.samanthony.xyz/hose/util" ) var ( @@ -14,6 +16,8 @@ var ( privKeyFile = filepath.Join(xdg.DataHome, "hose", "privkey") privKeyFileMode os.FileMode = 0600 + + dirMode os.FileMode = 0755 ) // createFile creates a file with the specified permissions and returns it for writing. @@ -27,11 +31,21 @@ func createFile(name string, mode os.FileMode) (*os.File, error) { } // Does not exist; continue; + util.Logf("creating file %s with mode %o", name, mode) + + // Create directory. + dir := filepath.Dir(name) + if err := os.MkdirAll(dir, dirMode); err != nil { + return nil, err + } + + // Create file. f, err := os.Create(name) if err != nil { return nil, err } + // Set mode. if err := f.Chmod(mode); err != nil { f.Close() _ = os.Remove(name) |