Add ledger binary command line flag

Allow the ledger binary used to be specified by the user. Journal syntax
is not 100% compatible across implementations, so supporting others
(e.g. hledger) make the updater work for those users' journals.
This commit is contained in:
Jon Banafato
2020-04-05 23:43:22 -04:00
parent 2a69a072be
commit 0f58a18825

View File

@@ -13,11 +13,12 @@ import (
) )
func main() { func main() {
ledgerBinary := flag.String("b", "ledger", "Ledger Binary")
ledgerFile := flag.String("f", "ledger.ledger", "Ledger File") ledgerFile := flag.String("f", "ledger.ledger", "Ledger File")
priceDbFile := flag.String("p", "prices.db", "Price Database File") priceDbFile := flag.String("p", "prices.db", "Price Database File")
flag.Parse() flag.Parse()
commodities := GetCommodities(*ledgerFile) commodities := GetCommodities(*ledgerFile, *ledgerBinary)
pricedb, err := os.OpenFile(*priceDbFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) pricedb, err := os.OpenFile(*priceDbFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil { if err != nil {
@@ -62,8 +63,8 @@ func GetTimeString() string {
return time.Now().Format("2006-01-02 15:04:05") return time.Now().Format("2006-01-02 15:04:05")
} }
func GetCommodities(ledger string) []string { func GetCommodities(ledger string, binary string) []string {
cmd := exec.Command("ledger", "-f", ledger, "commodities") cmd := exec.Command(binary, "-f", ledger, "commodities")
out, err := cmd.Output() out, err := cmd.Output()
if err != nil { if err != nil {
log.Fatalf("Ledger file commodity report failed with %s\n", err) log.Fatalf("Ledger file commodity report failed with %s\n", err)