ana-ledger/cmd/http/main.go

47 lines
1.0 KiB
Go

package http
import (
"flag"
"fmt"
"log"
"net/http"
_ "embed"
"gogs.inhome.blapointe.com/ana-ledger/src/ledger"
)
func Main() {
likeName := flag.String("like-name", ".", "regexp to match")
likeBefore := flag.String("like-before", "9", "date str to compare")
likeAfter := flag.String("like-after", "0", "date str to compare")
groupName := flag.String("group-name", ".*", "grouping to apply to names")
groupDate := flag.String("group-date", ".*", "grouping to apply to dates")
bpiPath := flag.String("bpi", "/dev/null", "bpi file")
httpOutput := flag.String("http", ":8080", "http output listen address, like :8080")
flag.Parse()
if flag.NArg() < 1 {
panic(fmt.Errorf("positional arguments for files required"))
}
f, err := ledger.NewFiles(flag.Args()[0], flag.Args()[1:]...)
if err != nil {
panic(err)
}
r := NewRouter(
f,
*likeName,
*likeBefore,
*likeAfter,
*groupName,
*groupDate,
*bpiPath,
)
log.Println("listening on", *httpOutput)
if err := http.ListenAndServe(*httpOutput, r); err != nil {
panic(err)
}
}