48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package gallery
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"git.gutmet.org/finstr.git"
|
|
"git.gutmet.org/goutil.git"
|
|
"path/filepath"
|
|
)
|
|
|
|
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)
|
|
}
|
|
}
|