diff options
author | Bjørn Erik Pedersen <[email protected]> | 2020-02-19 10:39:36 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2020-02-19 17:14:35 +0100 |
commit | 0b96aba022d51cf9939605c029bb8dba806653a1 (patch) | |
tree | f7d2883a6ea85546e4e9536f6ccfb184bc4293af /hugofs | |
parent | fa520a2d983b982394ad10088393fb303e48980a (diff) | |
download | hugo-0b96aba022d51cf9939605c029bb8dba806653a1.tar.gz hugo-0b96aba022d51cf9939605c029bb8dba806653a1.zip |
commands: Add "hugo mod verify"
See #6907
Diffstat (limited to 'hugofs')
-rw-r--r-- | hugofs/fs.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/hugofs/fs.go b/hugofs/fs.go index 163807704..c8c4c8afd 100644 --- a/hugofs/fs.go +++ b/hugofs/fs.go @@ -16,6 +16,7 @@ package hugofs import ( "os" + "strings" "github.com/gohugoio/hugo/config" "github.com/spf13/afero" @@ -88,3 +89,27 @@ func getWorkingDirFs(base afero.Fs, cfg config.Provider) *afero.BasePathFs { func isWrite(flag int) bool { return flag&os.O_RDWR != 0 || flag&os.O_WRONLY != 0 } + +// MakeReadableAndRemoveAllModulePkgDir makes any subdir in dir readable and then +// removes the root. +// TODO(bep) move this to a more suitable place. +// +func MakeReadableAndRemoveAllModulePkgDir(fs afero.Fs, dir string) (int, error) { + // Safe guard + if !strings.Contains(dir, "pkg") { + panic("invalid dir") + } + + counter := 0 + afero.Walk(fs, dir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return nil + } + if info.IsDir() { + counter++ + fs.Chmod(path, 0777) + } + return nil + }) + return counter, fs.RemoveAll(dir) +} |