ipn: have NewFileStore try to create directories as needed

This commit is contained in:
Brad Fitzpatrick 2020-03-03 11:51:44 -08:00
parent b3d9eab1fe
commit 68ff31a0ba

View File

@ -9,6 +9,7 @@ import (
"errors" "errors"
"io/ioutil" "io/ioutil"
"os" "os"
"path/filepath"
"sync" "sync"
"tailscale.com/atomicfile" "tailscale.com/atomicfile"
@ -73,6 +74,7 @@ func NewFileStore(path string) (*FileStore, error) {
if os.IsNotExist(err) { if os.IsNotExist(err) {
// Write out an initial file, to verify that we can write // Write out an initial file, to verify that we can write
// to the path. // to the path.
os.MkdirAll(filepath.Dir(path), 0755) // best effort
if err = atomicfile.WriteFile(path, []byte("{}"), 0600); err != nil { if err = atomicfile.WriteFile(path, []byte("{}"), 0600); err != nil {
return nil, err return nil, err
} }