Skip to content

Commit 898e12b

Browse files
authored
[v3] Add basic support for config + add screenshots & gif to readme (#71)
* add journal file as config * add config struct * add support for config file * add new gif for v3 * update Readme and add screenshots * fix readme * fix collapsible section * update demo_v3 tape file
1 parent 9b0b391 commit 898e12b

File tree

11 files changed

+121
-6
lines changed

11 files changed

+121
-6
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ test:
2626
demo:
2727
vhs demo.tape
2828

29+
demov3:
30+
vhs home_v3.tape
31+
vhs reports_v3.tape
32+
2933
release:
3034
GITHUB_TOKEN=$(GITHUB_TOKEN) goreleaser release --clean
3135

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,26 @@ To try V3, you can update to the latest version and run
3333

3434
Please note, **v3 does not use a config file yet**. So if you are using a config file with v2 then it won't be used with v3.
3535

36+
## Demo
37+
38+
![demo](assets/demo_v3.gif)
39+
40+
### Screenshots
41+
42+
<details>
43+
<summary>Home</summary>
44+
45+
![home](assets/screenshot_home_v3.png)
46+
47+
</details>
48+
49+
<details>
50+
<summary>Reports</summary>
51+
52+
![reports](assets/screenshot_reports_v3.png)
53+
54+
</details>
55+
3656
## V3 roadmap
3757
- [x] Accounts table
3858
- [x] Balance table

assets/demo_v3.gif

840 KB
Loading

assets/screenshot_home_v3.png

857 KB
Loading

assets/screenshot_reports_v3.png

811 KB
Loading

config_v3.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"journalFile": "data/hledger.journal"
3+
}

demo_v3.tape

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
Output assets/home_v3.gif
2+
Set Shell zsh
3+
Set Width 1920
4+
Set Height 1200
5+
Set Framerate 30
6+
Set FontSize 16
7+
8+
Type "go run . -v3 -cfg config_v3.json"
9+
Enter
10+
Sleep 2s
11+
Type "jj"
12+
Sleep 1s
13+
Type "2jj"
14+
Sleep 1s
15+
Type "j"
16+
Sleep 1s
17+
Type "jj"
18+
Sleep 1s
19+
20+
Type "3j"
21+
Sleep 1s
22+
Type "1"
23+
Sleep 1s
24+
Type "kk"
25+
Sleep 1s
26+
Type "2j"
27+
Sleep 1s
28+
Enter
29+
Sleep 1s
30+
Type "j3"
31+
Sleep 1s
32+
33+
Sleep 1s
34+
Tab
35+
Sleep 3s
36+
Type "2"
37+
Sleep 1s
38+
39+
Type "qq"
40+

main.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,15 @@ func main() {
1818
flag.Parse()
1919

2020
if runV3 {
21-
v3.Start(isDebug)
21+
var cfg v3.Config
22+
if configFile != "" {
23+
var err error
24+
cfg, err = v3.NewConfig(configFile)
25+
if err != nil {
26+
log.Fatal(err)
27+
}
28+
}
29+
v3.Start(cfg, isDebug)
2230
} else {
2331
cfg := ui.DefaultConfig
2432
if configFile != "" {

ui/v2/config.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package ui
2+
3+
import (
4+
"encoding/json"
5+
"io"
6+
"os"
7+
)
8+
9+
type Config struct {
10+
JournalFile string `json:"journalFile"`
11+
}
12+
13+
func NewConfig(configFile string) (Config, error) {
14+
file, err := os.Open(configFile)
15+
if err != nil {
16+
return Config{}, err
17+
}
18+
19+
return parseJSON(file)
20+
}
21+
22+
func parseJSON(file io.Reader) (Config, error) {
23+
var cfg Config
24+
if err := json.NewDecoder(file).Decode(&cfg); err != nil {
25+
return cfg, err
26+
}
27+
28+
return cfg, nil
29+
}

ui/v2/hledger/hledger.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,20 @@ import (
1313
)
1414

1515
type HledgerData struct {
16+
journalFile string
17+
}
18+
19+
func NewHledgerData(journalFile string) HledgerData {
20+
return HledgerData{
21+
journalFile: journalFile,
22+
}
1623
}
1724

1825
func (hd HledgerData) runCommand(args []string) (io.Reader, error) {
1926
log.Printf("data: command: %v", args)
27+
if hd.journalFile != "" {
28+
args = append(args, "-f", hd.journalFile)
29+
}
2030
cmd := exec.Command("hledger", args...)
2131
stdout, err := cmd.StdoutPipe()
2232
if err != nil {

0 commit comments

Comments
 (0)