From 6e69f90b4e2118c0164311be465b6f2384016522 Mon Sep 17 00:00:00 2001 From: Wancat Date: Wed, 19 Oct 2022 10:33:37 +0800 Subject: [PATCH] Add working directory & binding address options --- main.go | 26 ++++++++++++++++++++++---- scripts.go | 18 ------------------ 2 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 scripts.go diff --git a/main.go b/main.go index f0ce57e..0810f16 100644 --- a/main.go +++ b/main.go @@ -3,11 +3,13 @@ package main import ( "bytes" "flag" + "fmt" "io" "log" "net/http" "net/url" "os" + "os/exec" "strings" "text/template" "time" @@ -18,6 +20,8 @@ var htmlTpl *template.Template var LEDGER_FILE string var LEDGER_INIT string +var WORKING_DIR string +var HOST string type TxData struct { Name string @@ -29,8 +33,10 @@ type TxData struct { func init() { ledgerTpl = template.Must(template.ParseGlob("tx/*")) htmlTpl = template.Must(template.ParseGlob("templates/*.html")) - flag.StringVar(&LEDGER_FILE, "f", "example.txt", "ledger journal file") - flag.StringVar(&LEDGER_INIT, "i", "~/.ledgerrc", "ledger initiation file") + flag.StringVar(&LEDGER_FILE, "f", "example.txt", "ledger journal file to write") + flag.StringVar(&LEDGER_INIT, "i", "", "ledger initiation file") + flag.StringVar(&WORKING_DIR, "w", "", "ledger working directory") + flag.StringVar(&HOST, "b", "127.0.0.1:8000", "binding address") flag.Parse() } @@ -91,8 +97,8 @@ func main() { } }) - log.Println("Listen on http://localhost:8000") - log.Fatal(http.ListenAndServe(":8000", nil)) + log.Printf("Listen on %s", HOST) + log.Fatal(http.ListenAndServe(HOST, nil)) } func newTx(params url.Values) (result string, err error) { @@ -119,3 +125,15 @@ func appendToFile(tx string) (err error) { _, err = io.Copy(f, buf) return err } + +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{"--init-file", LEDGER_INIT}, script...)...) + cmd.Dir = WORKING_DIR + cmd.Stdout = w + cmd.Stderr = w + return cmd.Run() +} diff --git a/scripts.go b/scripts.go deleted file mode 100644 index c6a6db8..0000000 --- a/scripts.go +++ /dev/null @@ -1,18 +0,0 @@ -package main - -import ( - "fmt" - "io" - "os/exec" -) - -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{"--init-file", LEDGER_INIT}, script...)...) - cmd.Stdout = w - cmd.Stderr = w - return cmd.Run() -}