Fix not being able to create restore token on snap because the cache directory does not exist

This commit is contained in:
godalming 2025-03-17 18:51:12 +00:00
parent 21461d9a76
commit fd67bc635f

View file

@ -83,9 +83,10 @@ func InitPortalController(saveRestoreToken bool) (Controller, error) {
} }
supportsRestoreTokens := version.Value().(uint32) >= 2 supportsRestoreTokens := version.Value().(uint32) >= 2
var restoreTokenFilePath string var restoreTokenFilePath string
var cacheDirectory string
var restoreToken string var restoreToken string
if supportsRestoreTokens { if supportsRestoreTokens {
cacheDirectory, err := os.UserCacheDir() cacheDirectory, err = os.UserCacheDir()
if err != nil { if err != nil {
log.Printf("Cannot get user cache directory: %s. Therefore cannot get restore token file path in order to read or save the restore token.\n", err) log.Printf("Cannot get user cache directory: %s. Therefore cannot get restore token file path in order to read or save the restore token.\n", err)
} else { } else {
@ -178,9 +179,14 @@ func InitPortalController(saveRestoreToken bool) (Controller, error) {
if !ok { if !ok {
log.Println("Failed to get new restore token") log.Println("Failed to get new restore token")
} else if restoreTokenFilePath != "" { } else if restoreTokenFilePath != "" {
err := os.MkdirAll(cacheDirectory, 0700)
if err != nil {
log.Printf("Failed to create cache directory for restore token: %s\n", err)
} else {
err := os.WriteFile(restoreTokenFilePath, []byte(restoreToken), 0600) err := os.WriteFile(restoreTokenFilePath, []byte(restoreToken), 0600)
if err != nil { if err != nil {
log.Printf("Failed to write restore token: %s", err) log.Printf("Failed to write restore token: %s\n", err)
}
} }
} }
} }