commit 0ed993ef6a40918b73c145a88a6f08fecbd89c47
parent 2c6e876e0971ad99698cc2f37f3db67525cc5473
Author: gearsix <gearsix@tuta.io>
Date: Wed, 3 Nov 2021 21:39:14 +0000
added ignoreFile(); fixed async for copyAssets & added ignoreFiles
Diffstat:
3 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/page.go b/page.go
@@ -146,7 +146,7 @@ func LoadPagesDir(dir string) (p []Page, e error) {
if err != nil {
return err
}
- if strings.Contains(fpath, ".ignore") {
+ if ignoreFile(fpath) {
return nil
}
diff --git a/pagr.go b/pagr.go
@@ -34,6 +34,10 @@ func check(err error) {
}
}
+func ignoreFile(filepath string) bool {
+ return strings.Contains(filepath, ".ignore")
+}
+
func init() {
flag.StringVar(&cfg, "cfg", "", "path to pagr project configuration file")
flag.BoolVar(&verbose, "v", false, "print verbose logs")
@@ -42,8 +46,8 @@ func init() {
func main() {
flag.Parse()
vlog("verbose on")
- var err error
+ var err error
var config Config
if len(cfg) > 0 {
vlog("loading '%s'", cfg)
@@ -82,8 +86,8 @@ func main() {
htmlc++
assetc += len(page.Assets)
}
- log.Printf("generated %d html files, copying %d asset files...\n", htmlc, assetc)
wg.Wait()
+ log.Printf("generated %d html files, copied %d asset files...\n", htmlc, assetc)
log.Println("pagr success")
return
@@ -117,11 +121,17 @@ func buildPage(cfg Config, p Page, t []suti.Template) error {
func copyAssets(wg sync.WaitGroup, cfg Config) (n int) {
for _, a := range cfg.Assets {
- err := filepath.Walk(a, func(path string, info fs.FileInfo, err error) error {
- if err == nil && !info.IsDir() {
- n++
+ err := filepath.Walk(a, func(src string, info fs.FileInfo, err error) error {
+ if err == nil && !info.IsDir() && !ignoreFile(src) {
wg.Add(1)
- go CopyFile(path, filepath.Join(cfg.Output, strings.TrimPrefix(path, filepath.Clean(a))))
+ go func(src string) {
+ defer wg.Done()
+ a = filepath.Clean(a)
+ path := strings.TrimPrefix(src, a)
+ n++
+ CopyFile(src, filepath.Join(cfg.Output, path))
+ vlog("-> %s", path)
+ }(src)
}
return err
})
diff --git a/template.go b/template.go
@@ -28,7 +28,7 @@ func LoadTemplateDir(dir string) (templates []suti.Template, err error) {
})
err = filepath.Walk(dir, func(path string, info fs.FileInfo, e error) error {
- if e != nil || info.IsDir() || strings.Contains(path, ".ignore") {
+ if e != nil || info.IsDir() || ignoreFile(path) {
return e
}