From 0b96aba022d51cf9939605c029bb8dba806653a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 19 Feb 2020 10:39:36 +0100 Subject: commands: Add "hugo mod verify" See #6907 --- hugofs/fs.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'hugofs') 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) +} -- cgit v1.2.3