wombat/gallery/gallery.go
2024-06-18 23:01:52 +02:00

49 lines
1.1 KiB
Go

package gallery
import (
"flag"
"fmt"
"path/filepath"
"git.fireandbrimst.one/aw/finstr"
goutil "git.fireandbrimst.one/aw/goutil/misc"
)
const Prefix string = "photos"
type Flags struct {
single string
clean bool
}
func Generate(f Flags) error {
var err error
galleries := []string{Prefix + f.single}
if f.single == "" {
galleries, err = goutil.DirsWithPrefix(".", Prefix)
if err != nil {
return err
}
}
for _, g := range galleries {
fmt.Println("gallery: ", g)
args := finstr.Flags{InDir: g, OutDir: filepath.Join("stage0", g), Suffix: ".md", Clean: f.clean}
err = finstr.Generate(args)
if err != nil {
return err
}
}
return nil
}
func Command() (goutil.CommandFlagsInit, goutil.CommandFunc) {
f := Flags{}
flagsInit := func(s *flag.FlagSet) {
s.StringVar(&f.single, "single", "", "only generate single gallery instead of all (e.g. -single \"Holidays\" for folder 'photosHolidays')")
s.BoolVar(&f.clean, "clean", false, "remove old files in galleries before generating (use with caution)")
}
return flagsInit, func([]string) error {
return Generate(f)
}
}