2018-02-05 16:05:59 -05:00
|
|
|
package directory // import "github.com/docker/docker/pkg/directory"
|
2015-10-08 11:51:41 -04:00
|
|
|
|
|
|
|
import (
|
2022-10-05 05:09:35 -04:00
|
|
|
"context"
|
2015-10-08 11:51:41 -04:00
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
)
|
|
|
|
|
|
|
|
// MoveToSubdir moves all contents of a directory to a subdirectory underneath the original path
|
|
|
|
func MoveToSubdir(oldpath, subdir string) error {
|
2021-08-24 06:10:50 -04:00
|
|
|
infos, err := os.ReadDir(oldpath)
|
2015-10-08 11:51:41 -04:00
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
for _, info := range infos {
|
|
|
|
if info.Name() != subdir {
|
|
|
|
oldName := filepath.Join(oldpath, info.Name())
|
|
|
|
newName := filepath.Join(oldpath, subdir, info.Name())
|
|
|
|
if err := os.Rename(oldName, newName); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
2022-10-05 05:09:35 -04:00
|
|
|
|
|
|
|
// Size walks a directory tree and returns its total size in bytes.
|
|
|
|
func Size(ctx context.Context, dir string) (int64, error) {
|
|
|
|
return calcSize(ctx, dir)
|
|
|
|
}
|