From 7d8a3440b3789500156979e741ab9db7590b424d Mon Sep 17 00:00:00 2001 From: dengqn <434500374@qq.com> Date: Thu, 29 Aug 2024 15:17:10 +0800 Subject: [PATCH] list all --- go.sum | 0 list_version.go | 6 ++++++ storage/version.go | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 go.sum diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/list_version.go b/list_version.go index 721b578..96aba1e 100644 --- a/list_version.go +++ b/list_version.go @@ -35,10 +35,16 @@ func main() { del() case "r": rec() + case "v": + v() break } } +func v() { + storage.All() +} + func h() { fmt.Println("________________________________________________________") fmt.Println("[h] print this") diff --git a/storage/version.go b/storage/version.go index 775f431..e7d79af 100644 --- a/storage/version.go +++ b/storage/version.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + "log" "os" "path" "strconv" @@ -35,6 +36,45 @@ type Version struct { Desc string `json:"desc"` } +func All() (all []FileMeta) { + root, _ := os.UserConfigDir() + + appRoot, err := os.Open(path.Join(root, "list-version")) + if err != nil { + fmt.Println("%s", "打开文件失败0"+err.Error()) + if errors.Is(err, os.ErrNotExist) { + os.Mkdir(path.Join(root, "list-version"), os.ModePerm) + } + } + + defer func() { + if appRoot != nil { + appRoot.Close() + } + }() + + sub, _ := appRoot.Readdir(0) + pwd, _ := os.Getwd() + log.Println("pwd:", pwd) + for _, fi := range sub { + var meta FileMeta + + fileMeta, err := os.Open(path.Join(root, "list-version", fi.Name(), "meta.json")) + // not saved yet + if errors.Is(err, os.ErrNotExist) { + continue + } + defer fileMeta.Close() + // read meta.json + + buf, _ := io.ReadAll(fileMeta) + json.Unmarshal(buf, &meta) + fmt.Printf("[%d] %s\n", len(meta.Versions), meta.AbsolutePath) + } + + return all +} + func Extract(fullPath string, version Version) { root, _ := os.UserConfigDir() pathHex := util.ToHashHex(fullPath)