From 2dfb4a88b8eb38c317e79bb018d5f0e154056f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Thu, 5 Feb 2026 11:28:53 +0200 Subject: [PATCH] working commit --- app/handler/manifest.go | 1 + pkg/auxtool/cleandir.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 pkg/auxtool/cleandir.go diff --git a/app/handler/manifest.go b/app/handler/manifest.go index ba24469..4a35d16 100644 --- a/app/handler/manifest.go +++ b/app/handler/manifest.go @@ -86,6 +86,7 @@ func (hand *Handler) ManifestExists(rctx *router.Context) { // pushes of at least 4 megabytes. // PUT /v2//manifests/ 201 404 + func (hand *Handler) PutManifest(rctx *router.Context) { hand.DumpHeaders("PutManifest headers", rctx) diff --git a/pkg/auxtool/cleandir.go b/pkg/auxtool/cleandir.go new file mode 100644 index 0000000..a52a410 --- /dev/null +++ b/pkg/auxtool/cleandir.go @@ -0,0 +1,33 @@ +package auxtool + +import ( + "path/filepath" + "os" + "strings" +) + +func CleanDirs(basedir, datadir string) { + separator := string(os.PathSeparator) + + basedir = filepath.Clean(separator + basedir) + datadir = filepath.Clean(separator + datadir) + + items := strings.Split(datadir, separator) + for i := len(items); i > 0; i-- { + p := filepath.Join(items[0:i]...) + p = filepath.Clean(separator + p) + if p == basedir { + break + } + fileInfo, err := os.Stat(p) + if err != nil { + return + } + if fileInfo.IsDir() { + err = os.Remove(p) + if err != nil { + return + } + } + } +}