diff --git a/client/docker-finance.d/container/shell/subprofile.bash.in b/client/docker-finance.d/container/shell/subprofile.bash.in index 9a0423e..80217b6 100644 --- a/client/docker-finance.d/container/shell/subprofile.bash.in +++ b/client/docker-finance.d/container/shell/subprofile.bash.in @@ -29,23 +29,33 @@ # CLI ledger alias @DOCKER_FINANCE_SUBPROFILE@_ledger='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ ledger' +alias @DOCKER_FINANCE_SUBPROFILE@_hledger='@DOCKER_FINANCE_SUBPROFILE@_ledger' alias @DOCKER_FINANCE_SUBPROFILE@_bal='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ ledger bal \ assets liabilities \ not:desc:balances\$ not:equity:balances\$ not:archive \ ' -# CLI UI +# Terminal UI alias @DOCKER_FINANCE_SUBPROFILE@_ui='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ ledger-ui -w \ assets liabilities \ not:desc:balances\$ not:equity:balances\$ not:archive \ ' +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 \ +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 --allow=view \ assets liabilities \ not:desc:balances\$ not:equity:balances\$ not:archive \ ' +alias @DOCKER_FINANCE_SUBPROFILE@_ledger-web='@DOCKER_FINANCE_SUBPROFILE@_web' +alias @DOCKER_FINANCE_SUBPROFILE@_hledger-web='@DOCKER_FINANCE_SUBPROFILE@_web' # Fetches, imports, generates taxes and reports (using defaults) alias @DOCKER_FINANCE_SUBPROFILE@_all='$DOCKER_FINANCE_CONTAINER_CMD @DOCKER_FINANCE_PROFILE@/@DOCKER_FINANCE_SUBPROFILE@ all' diff --git a/container/src/finance/finance.bash b/container/src/finance/finance.bash index 26c153b..e889c1e 100755 --- a/container/src/finance/finance.bash +++ b/container/src/finance/finance.bash @@ -54,9 +54,9 @@ function main() edit \e[34;3mEdit existing container data\e[0m fetch \e[34;3mFetch remote accounts\e[0m import \e[34;3mImport CSVs for given year (default: current year)\e[0m - ledger \e[34;3mRun CLI ledger-based commands\e[0m - ledger-ui \e[34;3mStart ncurses-based UI\e[0m - ledger-web \e[34;3mStart web-based UI\e[0m + ledger \e[34;3mRun CLI accounting commands (hledger)\e[0m + ledger-ui \e[34;3mStart terminal UI (hledger-ui)\e[0m + ledger-web \e[34;3mStart web-based UI (hledger-web)\e[0m meta \e[34;3mSearch local financial metadata\e[0m reports \e[34;3mGenerate balance sheet, income statement, etc.\e[0m root \e[34;3mRun ROOT.cern instance for docker-finance analysis\e[0m @@ -107,13 +107,16 @@ function main() import) lib_finance::import "${@:3}" ;; - ledger) + ledger | hledger) lib_finance::ledger "${@:3}" ;; - ledger-ui) + ledger-ui | hledger-ui) lib_finance::ledger-ui "${@:3}" ;; - ledger-web) + ledger-vui | hledger-vui) + lib_finance::ledger-vui "${@:3}" + ;; + ledger-web | hledger-web) lib_finance::ledger-web "${@:3}" ;; meta) diff --git a/container/src/finance/lib/internal/lib_edit.bash b/container/src/finance/lib/internal/lib_edit.bash index 619a821..7027a3d 100644 --- a/container/src/finance/lib/internal/lib_edit.bash +++ b/container/src/finance/lib/internal/lib_edit.bash @@ -157,7 +157,7 @@ function lib_edit::__parse_args() read -ra _read <<<"$_arg_type" for _type in "${_read[@]}"; do - if [[ ! "$_type" =~ ^fetch$|^manual$|^meta$|^preprocess$|^rules$|^shell$ ]]; then + if [[ ! "$_type" =~ ^fetch$|^iadd$|^manual$|^meta$|^preprocess$|^rules$|^shell$ ]]; then lib_utils::die_usage "$_usage" fi if [[ ! -z "$_arg_account" ]]; then @@ -209,16 +209,18 @@ function lib_edit::__edit() fetch) $EDITOR "$global_conf_fetch" ;; - manual) + iadd | manual) local _path="${global_child_profile_flow}/import/${global_child_profile}/_manual_/${global_arg_year}" [ ! -d "$_path" ] && mkdir -p "$_path" _path+="/post-import.journal" [ ! -f "$_path" ] && touch "$_path" + # TODO: upstream request to provide comment(N) entries + [[ "$_type" == "iadd" ]] && /usr/bin/hledger-iadd -f "$_path" + # TODO: option for editor type - $EDITOR "$_path" - #/usr/bin/hledger-iadd -f "$_path" # TODO: upstream request to provide comment(N) entries + [[ "$_type" == "manual" ]] && $EDITOR "$_path" ;; meta) # NOTE: 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 "$@"