25 lines
497 B
Go
25 lines
497 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os/exec"
|
|
)
|
|
|
|
var SCRIPTS = map[string][]string{
|
|
"balance": {"b"},
|
|
"register": {"r"},
|
|
"expenses this month": {"b", "expenses", "-b", "this month"},
|
|
}
|
|
|
|
func executeScript(w io.Writer, name string) (err error) {
|
|
script, ok := SCRIPTS[name]
|
|
if !ok {
|
|
return fmt.Errorf("%s script not found", name)
|
|
}
|
|
cmd := exec.Command("ledger", append([]string{"-f", LEDGER_FILE}, script...)...)
|
|
cmd.Stdout = w
|
|
cmd.Stderr = w
|
|
return cmd.Run()
|
|
}
|