From 55cb1ee58b11ac2ab3919f6b240de1546e4a8e8e Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Mon, 20 May 2024 12:09:31 +0200 Subject: [PATCH] feat: add exlude pattern --- source/html/sync.go | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/source/html/sync.go b/source/html/sync.go index 1784580..93c76ce 100644 --- a/source/html/sync.go +++ b/source/html/sync.go @@ -33,8 +33,13 @@ func SyncHtml(p string) error { } currentDir, _ := os.Getwd() - os.Chdir(filepath.Dir(p)) - defer os.Chdir(currentDir) + if err := os.Chdir(filepath.Dir(p)); err != nil { + return err + } + + defer func() { + _ = os.Chdir(currentDir) + }() specification := types.SyncSpecification{} @@ -72,13 +77,13 @@ func SyncHtml(p string) error { return err } - fileinfo, err := os.Stat(d) + fileInfo, err := os.Stat(d) if err != nil { return err } - if fileinfo.IsDir() { - filepath.Walk(d, func(pp string, info os.FileInfo, err error) error { + if fileInfo.IsDir() { + if err = filepath.Walk(d, func(pp string, info os.FileInfo, err error) error { if err != nil { return err } @@ -112,7 +117,9 @@ func SyncHtml(p string) error { } return nil - }) + }); err != nil { + return err + } } else if filepath.Ext(d) == ".html" { if exclude != nil { @@ -121,9 +128,17 @@ func SyncHtml(p string) error { if err != nil { return err } + if e == d { return nil } + + if r, err := filepath.Match(e, d); err != nil { + return err + } else if r { + return nil + } + } } @@ -134,9 +149,7 @@ func SyncHtml(p string) error { destinationFiles[d] = dd destinationFile[absSource] = append(destinationFile[absSource], d) - } - } for _, r := range specification.Sync { -- GitLab