Compare commits
16 Commits
711e5e00ec
...
v1.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
72ee9b9607
|
|||
|
76505b6a5e
|
|||
|
c6703ad706
|
|||
|
4417122fee
|
|||
|
6bd16952a6
|
|||
|
35d239588d
|
|||
|
745984766d
|
|||
|
38b2633e6c
|
|||
|
e3598fce8c
|
|||
|
484d01aa7a
|
|||
|
057b07ba7d
|
|||
|
997cf1d46c
|
|||
|
558032e297
|
|||
|
2edffac838
|
|||
|
a1ac219db8
|
|||
|
8c83066826
|
21
CHANGELOG.md
21
CHANGELOG.md
@@ -18,9 +18,24 @@
|
||||
|
||||
# Changelog (`docker-finance`)
|
||||
|
||||
## 1.4.1 - 2026-03-18
|
||||
|
||||
This patch release fixes broken `import` for Trezor Suite v25.9.1+ by adding new FS support and backward compatibility.
|
||||
|
||||
### 1.4.1 - Fixes
|
||||
|
||||
- Add bash quotes when testing column(s) of given header and add custom delim support (lib_preprocess) ([#326](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/326))
|
||||
|
||||
- Add Trezor Suite v25.9.1+ FS support and backward compatibility ([#327](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/327))
|
||||
* For devs (to generate new FS mockup), with `finance` image, run: `gen type=flow account=trezor dev=on confirm=no profile=<profile/subprofile>`
|
||||
|
||||
### 1.4.1 - Contributors
|
||||
|
||||
- Aaron Fiore
|
||||
|
||||
## 1.4.0 - 2026-03-16
|
||||
|
||||
This release brings a minor `dfi` fix, a new `dfi` feature (custom compose merge file functionality), `dfi` enhancements (base image and end-user) and a ROOT.cern (`root`) patch release.
|
||||
This release brings a minor `dfi` fix (`fetch`), a new `dfi` feature (custom compose merge file functionality), `dfi` enhancements (base image and end-user), and patch releases for `hledger-flow` and ROOT.cern (`root`).
|
||||
|
||||
### 1.4.0 - Fixes
|
||||
|
||||
@@ -53,11 +68,13 @@ This release brings a minor `dfi` fix, a new `dfi` feature (custom compose merge
|
||||
|
||||
- Bump `root` to 6.38.04-1 ([#317](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/317))
|
||||
|
||||
- Bump `hledger-flow` to v0.16.3 ([#324](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/324)) ([#325](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/325))
|
||||
|
||||
### 1.4.0 - Refactoring
|
||||
|
||||
- Run PHP linter, update fetch (blockchains) comments ([#316](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/316))
|
||||
|
||||
- Comment out "ethereum:0xbcca60bb61934080951369a648fb03df4f96263c/aUSDC" in default generated `fetch` config ([#322](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/322))
|
||||
- Comment out `"ethereum:0xbcca60bb61934080951369a648fb03df4f96263c/aUSDC"` in default generated `fetch` config ([#322](https://gitea.evergreencrypto.co/EvergreenCrypto/docker-finance/pulls/322))
|
||||
|
||||
### 1.4.0 - Contributors
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ RUN apt-get upgrade -y
|
||||
FROM haskell-build AS hledger-flow
|
||||
|
||||
WORKDIR /usr/local/src
|
||||
RUN git clone --depth=1 https://github.com/apauley/hledger-flow -b v0.16.2
|
||||
RUN git clone --depth=1 https://github.com/apauley/hledger-flow -b v0.16.3
|
||||
|
||||
WORKDIR /usr/local/src/hledger-flow
|
||||
RUN stack setup
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
|
||||
# Release version (tag format)
|
||||
version: "v1.4.0"
|
||||
version: "v1.4.1"
|
||||
|
||||
# Container dependencies (used by `version` command)
|
||||
# NOTE: this must stay inline with Dockerfiles
|
||||
|
||||
@@ -142,6 +142,10 @@ function lib_hledger::__hledger-import()
|
||||
{
|
||||
lib_hledger::__parse_hledger-import "$@"
|
||||
|
||||
# TODO: v0.16.3+: add `--new-files-only` only if hledger-flow adds support for
|
||||
# tracking changes to rules and preprocess files. The tracking *must* apply to
|
||||
# all repo files and any/all custom files. Currently, only *modified* time of
|
||||
# source files compared to *modified* time of target files are tracked.
|
||||
time hledger-flow import \
|
||||
"$(dirname $global_child_profile_journal)" \
|
||||
--start-year "$global_arg_year"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
Timestamp,Date,Time,Type,Transaction ID,Fee,Fee unit,Address,Label,Amount,Amount unit,Fiat (USD),Other
|
||||
1773852733,3/18/2026,9:52:13 AM GMT-7,SENT,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX123,0.00001234,BTC,bc1qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX123,New FS tx,0.00012345,BTC,"8.81",
|
||||
|
@@ -36,16 +36,35 @@ source "${DOCKER_FINANCE_CONTAINER_REPO}/src/hledger-flow/lib/lib_preprocess.bas
|
||||
|
||||
[ -z "$global_in_filename" ] && exit 1
|
||||
|
||||
function reseat_fs()
|
||||
{
|
||||
[ -z $1 ] && exit 1
|
||||
local -r _fs="$1"
|
||||
local -r _header="Timestamp${_fs}Date${_fs}Time${_fs}Type${_fs}Transaction ID${_fs}Fee${_fs}Fee unit${_fs}Address${_fs}Label${_fs}Amount${_fs}Amount unit${_fs}Fiat (USD)${_fs}Other"
|
||||
echo "$_header"
|
||||
}
|
||||
|
||||
function parse()
|
||||
{
|
||||
lib_preprocess::assert_header "Timestamp;Date;Time;Type;Transaction ID;Fee;Fee unit;Address;Label;Amount;Amount unit;Fiat (USD);Other"
|
||||
local _gawk=("gawk")
|
||||
local _fs _header
|
||||
|
||||
_header="$(reseat_fs ";")"
|
||||
if lib_preprocess::test_header "$_header"; then
|
||||
_fs="FS=;"
|
||||
else
|
||||
# Since v25.9.1
|
||||
_header="$(reseat_fs ",")"
|
||||
lib_preprocess::assert_header "$_header"
|
||||
_gawk+=("--csv")
|
||||
fi
|
||||
|
||||
# Get subaccount(s) from filename
|
||||
local _subaccount
|
||||
_subaccount="$(echo $global_in_filename | cut -d'_' -f1)"
|
||||
|
||||
# NOTE: subaccount (account label) is entered within the app
|
||||
gawk \
|
||||
"${_gawk[@]}" \
|
||||
-v global_year="$global_year" \
|
||||
-v global_subaccount="$global_subaccount" \
|
||||
-v subaccount="$_subaccount" \
|
||||
@@ -64,7 +83,7 @@ function parse()
|
||||
# skip # Date (N/A)
|
||||
# skip # Time (N/A)
|
||||
|
||||
# Type # TODO: are there more types?
|
||||
# Type (TODO: are there more types?)
|
||||
direction=($4 ~ /^RECV$/ ? "IN" : "OUT")
|
||||
printf $4 OFS
|
||||
|
||||
@@ -80,7 +99,19 @@ function parse()
|
||||
|
||||
printf("%.8f", $10); printf OFS # Amount # TODO: more than 8 places for Ethereum, etc.?
|
||||
printf "\"" $11 "\"" OFS # Amount unit
|
||||
printf "\"" $12 "\"" OFS # Fiat (USD)
|
||||
|
||||
# Fiat (USD)
|
||||
# NOTE: is already quoted since v25.9.1
|
||||
fiat=$12
|
||||
if (fiat ~ /^"/)
|
||||
{
|
||||
printf fiat OFS
|
||||
}
|
||||
else
|
||||
{
|
||||
printf "\"" fiat "\"" OFS
|
||||
}
|
||||
|
||||
printf "\"" $13 "\"" OFS # Other
|
||||
|
||||
printf direction OFS
|
||||
@@ -88,7 +119,7 @@ function parse()
|
||||
|
||||
printf "\n"
|
||||
|
||||
}' FS=\; OFS=, "$global_in_path" >"$global_out_path"
|
||||
}' "$_fs" OFS=, "$global_in_path" >"$global_out_path"
|
||||
}
|
||||
|
||||
function main()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# docker-finance | modern accounting for the power-user
|
||||
#
|
||||
# Copyright (C) 2021-2025 Aaron Fiore (Founder, Evergreen Crypto LLC)
|
||||
# Copyright (C) 2021-2026 Aaron Fiore (Founder, Evergreen Crypto LLC)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -64,9 +64,16 @@ echo -e " \e[32m│ └─\e[37;2m ${global_in_filename}\e[0m"
|
||||
function lib_preprocess::test_header()
|
||||
{
|
||||
local _column="$1"
|
||||
|
||||
local _header
|
||||
_header="$(lib_preprocess::__sanitize_header $2)"
|
||||
[[ "$_header" =~ (^${_column}$|^${_column},|,${_column},|,${_column}$) ]] && return 0 || return 2
|
||||
|
||||
local _delim="$3"
|
||||
[ -z "$_delim" ] && _delim=","
|
||||
|
||||
# TODO: consolidate regexp
|
||||
[[ "$_header" =~ (^"${_column}"$|^"${_column}${_delim}"|"${_delim}${_column}${_delim}"|"${_delim}${_column}"$) ]] \
|
||||
&& return 0 || return 2
|
||||
}
|
||||
|
||||
# Assert header in given CSV header
|
||||
|
||||
Reference in New Issue
Block a user