pagr

A 'static site generator', built using dati.
Log | Files | Refs | Atom

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:
Mpage.go | 2+-
Mpagr.go | 22++++++++++++++++------
Mtemplate.go | 2+-
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 }