diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2022-03-26 06:39:11 -0400 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2022-03-27 07:18:25 -0400 |
commit | d106b294b428fbb10f59d4cafe72c3dcaa4e73bb (patch) | |
tree | 3c81aa0b8452565c704629258643eb6c51b82b3e /pkg/util/utils.go | |
parent | 56b2937f87bd67b46aa93109aefc08ce0edb5cf1 (diff) | |
download | podman-d106b294b428fbb10f59d4cafe72c3dcaa4e73bb.tar.gz podman-d106b294b428fbb10f59d4cafe72c3dcaa4e73bb.tar.bz2 podman-d106b294b428fbb10f59d4cafe72c3dcaa4e73bb.zip |
Switch all calls to filepath.Walk to filepath.WalkDir
WalkDir should be faster the Walk, since we often do
not need to stat files.
[NO NEW TESTS NEEDED] Existing tests should find errors.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'pkg/util/utils.go')
-rw-r--r-- | pkg/util/utils.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkg/util/utils.go b/pkg/util/utils.go index 334a44a88..b89978601 100644 --- a/pkg/util/utils.go +++ b/pkg/util/utils.go @@ -3,6 +3,7 @@ package util import ( "encoding/json" "fmt" + "io/fs" "math" "os" "os/user" @@ -731,3 +732,20 @@ func LookupUser(name string) (*user.User, error) { } return user.Lookup(name) } + +// SizeOfPath determines the file usage of a given path. it was called volumeSize in v1 +// and now is made to be generic and take a path instead of a libpod volume +func SizeOfPath(path string) (uint64, error) { + var size uint64 + err := filepath.WalkDir(path, func(path string, d fs.DirEntry, err error) error { + if err == nil && !d.IsDir() { + info, err := d.Info() + if err != nil { + return err + } + size += uint64(info.Size()) + } + return err + }) + return size, err +} |