In the os package, there are two examples that use functions "not recommended" anymore.
The new recommendations were added in Commit: b641f0d in response to issue #41122
The fix is already indicated in each function, so the actual update should be pretty straightforward.
Functions that indicate new usage.
// IsExist returns a boolean indicating whether its argument is known to report
// that a file or directory already exists. It is satisfied by [ErrExist] as
// well as some syscall errors.
//
// This function predates [errors.Is]. It only supports errors returned by
// the os package. New code should use errors.Is(err, fs.ErrExist).
func ExampleMkdir()
func ExampleMkdir() {
err := os.Mkdir("testdir", 0750)
if err != nil && !os.IsExist(err) {
log.Fatal(err)
}
err = os.WriteFile("testdir/testfile.txt", []byte("Hello, Gophers!"), 0660)
if err != nil {
log.Fatal(err)
}
}
// IsNotExist returns a boolean indicating whether its argument is known to
// report that a file or directory does not exist. It is satisfied by
// [ErrNotExist] as well as some syscall errors.
//
// This function predates [errors.Is]. It only supports errors returned by
// the os package. New code should use errors.Is(err, fs.ErrNotExist).
func ExampleUserConfigDir()
func ExampleUserConfigDir() {
dir, dirErr := os.UserConfigDir()
var (
configPath string
origConfig []byte
)
if dirErr == nil {
configPath = filepath.Join(dir, "ExampleUserConfigDir", "example.conf")
var err error
origConfig, err = os.ReadFile(configPath)
if err != nil && !os.IsNotExist(err) {
// The user has a config file but we couldn't read it.
// Report the error instead of ignoring their configuration.
log.Fatal(err)
}
}
// Use and perhaps make changes to the config.
config := bytes.Clone(origConfig)
// …
// Save changes.
if !bytes.Equal(config, origConfig) {
if configPath == "" {
log.Printf("not saving config changes: %v", dirErr)
} else {
err := os.MkdirAll(filepath.Dir(configPath), 0700)
if err == nil {
err = os.WriteFile(configPath, config, 0600)
}
if err != nil {
log.Printf("error saving config changes: %v", err)
}
}
}
// Output:
}
No other examples were found using the functions in the os package or any other in the standard library.
I am up to making a PR for this if there is consensus that it should be updated.
In the os package, there are two examples that use functions "not recommended" anymore.
The new recommendations were added in Commit: b641f0d in response to issue #41122
The fix is already indicated in each function, so the actual update should be pretty straightforward.
Functions that indicate new usage.
func IsExist(err error) bool
func ExampleMkdir()
func IsNotExist(err error) bool
func ExampleUserConfigDir()
No other examples were found using the functions in the os package or any other in the standard library.
I am up to making a PR for this if there is consensus that it should be updated.