package nasin import "os" import "path/filepath" // ApplicationUserDataDir returns the directory path where an application can // store its user data files. If the directory does not exist, it will be // created. func ApplicationUserDataDir (app ApplicationDescription) (string, error) { return userMkdirAll(app.ID, userDataDir) } // ApplicationUserConfigDir returns the directory path where an application can // store its user configuration files. func ApplicationUserConfigDir (app ApplicationDescription) (string, error) { return userMkdirAll(app.ID, userConfigDir) } // ApplicationUserCacheDir returns the directory path where an application can // store its user cache files. func ApplicationUserCacheDir (app ApplicationDescription) (string, error) { return userMkdirAll(app.ID, userCacheDir) } func userMkdirAll (sub string, getter func () (string, error)) (string, error) { path, err := getter() if err != nil { return "", err } path = filepath.Join(path, sub) err = os.MkdirAll(path, 0700) if err != nil { return "", err } return path, nil }