mirror of
https://git.sr.ht/~adnano/kiln
synced 2024-10-30 01:13:08 +00:00
Allow specifying which task to run
This commit is contained in:
parent
70795af4c8
commit
a7e8568b1e
49
main.go
49
main.go
|
@ -1,26 +1,59 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if err := run(); err != nil {
|
||||
var (
|
||||
task string
|
||||
config string
|
||||
)
|
||||
|
||||
flag.StringVar(&task, "t", "all", "the task to run")
|
||||
flag.StringVar(&config, "c", "config.toml", "the configuration file to use")
|
||||
flag.Parse()
|
||||
|
||||
// Load config
|
||||
cfg, err := LoadConfig(config)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := cfg.LoadTemplates("templates"); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := run(cfg, task); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func run() error {
|
||||
// Load config
|
||||
cfg, err := LoadConfig("config.toml")
|
||||
func run(cfg *Config, taskName string) error {
|
||||
switch taskName {
|
||||
case "all":
|
||||
return runAll(cfg)
|
||||
default:
|
||||
task, ok := cfg.Tasks[taskName]
|
||||
if !ok {
|
||||
return fmt.Errorf("run task %q: no such task", taskName)
|
||||
}
|
||||
return runTask(cfg, task)
|
||||
}
|
||||
}
|
||||
|
||||
func runAll(cfg *Config) error {
|
||||
for _, task := range cfg.Tasks {
|
||||
err := runTask(cfg, task)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cfg.LoadTemplates("templates"); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, task := range cfg.Tasks {
|
||||
func runTask(cfg *Config, task *Task) error {
|
||||
// Load content
|
||||
dir := NewDir("")
|
||||
dir.inputExt = task.Input
|
||||
|
@ -38,7 +71,5 @@ func run() error {
|
|||
if err := dir.write(task.Destination, task); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue