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