From 369e2343cedca1326e22c7b547f2e8b7b585da33 Mon Sep 17 00:00:00 2001 From: Aaron Fiore Date: Mon, 24 Jun 2024 16:10:17 -0700 Subject: [PATCH] client/container: bash: trivial impl for `ledger-vui` Leverages journal to visidata for an alternative read-only terminal UI. --- .../container/shell/subprofile.bash.in | 5 +++++ container/src/finance/finance.bash | 3 +++ container/src/finance/lib/internal/lib_ledger.bash | 12 ++++++++++++ container/src/finance/lib/lib_finance.bash | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/client/docker-finance.d/container/shell/subprofile.bash.in b/client/docker-finance.d/container/shell/subprofile.bash.in index 025c751..7354ff0 100644 --- a/client/docker-finance.d/container/shell/subprofile.bash.in +++ b/client/docker-finance.d/container/shell/subprofile.bash.in @@ -44,6 +44,11 @@ alias @DOCKER_FINANCE_SUBPROFILE@_ui='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINA alias @DOCKER_FINANCE_SUBPROFILE@_ledger-ui='@DOCKER_FINANCE_SUBPROFILE@_ui' alias @DOCKER_FINANCE_SUBPROFILE@_hledger-ui='@DOCKER_FINANCE_SUBPROFILE@_ui' +# Terminal UI (visidata) +alias @DOCKER_FINANCE_SUBPROFILE@_vui='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ ledger-vui' +alias @DOCKER_FINANCE_SUBPROFILE@_ledger-vui='@DOCKER_FINANCE_SUBPROFILE@_vui' +alias @DOCKER_FINANCE_SUBPROFILE@_hledger-vui='@DOCKER_FINANCE_SUBPROFILE@_vui' + # Web UI alias @DOCKER_FINANCE_SUBPROFILE@_web='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ ledger-web --serve --host=0.0.0.0 --base-url http://127.0.0.1:5000 --capabilities=view \ assets liabilities \ diff --git a/container/src/finance/finance.bash b/container/src/finance/finance.bash index 914d48a..e889c1e 100755 --- a/container/src/finance/finance.bash +++ b/container/src/finance/finance.bash @@ -113,6 +113,9 @@ function main() ledger-ui | hledger-ui) lib_finance::ledger-ui "${@:3}" ;; + ledger-vui | hledger-vui) + lib_finance::ledger-vui "${@:3}" + ;; ledger-web | hledger-web) lib_finance::ledger-web "${@:3}" ;; diff --git a/container/src/finance/lib/internal/lib_ledger.bash b/container/src/finance/lib/internal/lib_ledger.bash index 32070c8..7eaf7d9 100644 --- a/container/src/finance/lib/internal/lib_ledger.bash +++ b/container/src/finance/lib/internal/lib_ledger.bash @@ -46,6 +46,12 @@ function lib_ledger::ledger-ui() lib_utils::catch $? } +function lib_ledger::ledger-vui() +{ + lib_ledger::__ledger-vui "$@" + lib_utils::catch $? +} + function lib_ledger::ledger-web() { lib_ledger::__ledger-web "$@" @@ -132,6 +138,12 @@ function lib_ledger::__ledger-ui() /usr/bin/hledger-ui -f "$global_child_profile_journal" "$@" } +function lib_ledger::__ledger-vui() +{ + /usr/bin/hledger -f "$global_child_profile_journal" print -O csv "$@" \ + | visidata --motd-url file:///dev/null --filetype csv +} + function lib_ledger::__ledger-web() { /usr/bin/hledger-web -f "$global_child_profile_journal" "$@" diff --git a/container/src/finance/lib/lib_finance.bash b/container/src/finance/lib/lib_finance.bash index b527a93..b144370 100644 --- a/container/src/finance/lib/lib_finance.bash +++ b/container/src/finance/lib/lib_finance.bash @@ -186,6 +186,12 @@ function lib_finance::ledger-ui() lib_utils::catch $? } +function lib_finance::ledger-vui() +{ + lib_ledger::ledger-vui "$@" + lib_utils::catch $? +} + function lib_finance::ledger-web() { lib_ledger::ledger-web "$@"