0
0
mirror of https://github.com/thegeeklab/wp-plugin-go.git synced 2024-09-21 18:22:45 +02:00
wp-plugin-go/file/file.go

45 lines
1.2 KiB
Go
Raw Normal View History

2024-02-09 09:38:23 +01:00
package file
2024-03-11 09:23:17 +01:00
import (
"os"
)
2024-02-09 09:38:23 +01:00
// The MSDN docs appear to say that a normal path that is 248 bytes long will work;
// empirically the path must be less then 248 bytes long.
// See https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
const maxPathLenght = 248
// ReadStringOrFile returns the content of a string or a file if the file exists.
// The returned boolean value indicates whether the specified `input` was a file path or not.
func ReadStringOrFile(input string) (string, bool, error) {
if len(input) >= maxPathLenght {
return input, false, nil
}
// Check if input is a file path
if _, err := os.Stat(input); err != nil && os.IsNotExist(err) {
// No file found => use input as result
return input, false, nil
} else if err != nil {
return "", false, err
}
result, err := os.ReadFile(input)
if err != nil {
return "", true, err
}
return string(result), true, nil
}
2024-03-11 09:23:17 +01:00
// DeleteDir deletes the directory at the given path.
// It returns nil if the deletion succeeds, or the deletion error otherwise.
// If the directory does not exist, DeleteDir returns nil.
2024-02-09 09:38:23 +01:00
func DeleteDir(path string) error {
if _, err := os.Stat(path); os.IsNotExist(err) {
return nil
}
return os.Remove(path)
}