Commit Graph

45 Commits

Author SHA1 Message Date
d130d078ca client: add bitcoin plugin, update custom build deps
Adds bitcoin building plugin and finance image build dependencies.

See the code documentation in this commit for details.
2025-12-18 16:20:38 -08:00
5a0608751a client: docker-finance.d: fetch: price: allow non-alpha character
Now supported in impl.
2025-08-08 14:29:59 -07:00
d270d56366 client/container: ethereum-based: support Etherscan V2, add more L2 chains
- Implements support for unified API via Etherscan V2 (ethereum-based)
  * All ethereum-based L2s are now accessed via single API endpoint
    - Chains are now available via chain ID
  * Updates API key requirement for `fetch` ethereum-based subaccounts
    - The API key's value must now be prepended with "etherscan"
      * Previously was prepended per-chain ("ethereum" or "polygon")
    - The API key is now *required* (can be generated at etherscan.io)
      * Resolves fatal error in Etherscan::parse_response()
      * Impl will now handle if:
        - Config's API key/value is malformed
        - Etherscan API key was not given
        - Etherscan response is fatal

- Adds support for more L2s
  * Arbitrum (One)
  * Optimism
  * Base

- Adds more L2s to existing accounts
  * Coinbase Wallet
  * Ledger Live
  * MetaMask

- Updates documentation
  * Update default generated `fetch` config
  * Update `fetch` usage help
  * Update README
2025-08-04 15:07:10 -07:00
32cc9215d7 client: docker-finance.d: fetch: remove unused CDP YAML key
Fixup to a52f7e2218
2025-01-30 18:57:11 -08:00
a52f7e2218 client: docker-finance.d: fetch: remove unused YAML keys 2025-01-23 20:10:07 -08:00
ca31fef052 client: docker-finance.d: fetch: update Coinbase CDP key
Support for Legacy Keys will be removed on 2025-02-05.
2025-01-23 20:09:53 -08:00
11a154b87e client: docker-finance.d: fetch: add coinomi example
NOTE: exported CSV still required for all other networks.
2025-01-06 17:41:20 -08:00
0e0ae15adb client: docker-finance.d: fetch: remove coinbase-pro 2025-01-04 01:16:05 -08:00
750265d4b6 client: docker-finance.d: subscript: remove base cmd
The recently added base command variable would break on multi-profile
systems because, when superscript first sources, this global variable
would be set.

Unsetting/resetting the variable will not be a fix so, revert to the
noisy but dynamic per-alias-generated solution instead.
2024-09-30 16:24:01 -07:00
01197a2818 client/container: implement debug log-levels
DOCKER_FINANCE_DEBUG will now support the following:

0 = no debug output
1 = `print_debug` (bash/PHP)
2 = level 1 + `set -xv` (bash)
2024-09-26 18:38:36 -07:00
7077e06d3d client: docker-finance.d: subscript: rewrite
- Refactors and sorts
- Consolidates commands
  * Shortens hledger-{ui,vui,web}
  * Comment out most aliases by default
- Updates to latest impl
- Adds notes and examples
2024-09-26 18:31:55 -07:00
a1cea1fd1e client: docker-finance.d: Dockerfiles: add docker-finance version tag 2024-09-25 20:54:00 -07:00
f18bd9aabb client: docker-finance.d: fetch: re-add docker-finance version tag
This was originally removed because it lacked functional usage, as there
already exists a 'version' key.

However, for consistency across all .in files, adding a version *tag*
(non-YAML) serves to quickly indentify what program this configuration
file actually belongs to.
2024-09-24 19:57:48 -07:00
dae2572467 client: docker-finance.d: hledger: add docker-finance version tag 2024-09-24 18:12:47 -07:00
4759d10a59 client: docker-finance.d: hledger: remove comment
Remove an outdated comment; hledger 1.40 is now the minimum provided by
the docker-finance build system.
2024-09-24 18:12:47 -07:00
7d4a843e65 client: docker-finance.d: hledger: remove web args
These args are a baseline requirement within `lib_hledger` impl.
2024-09-24 18:12:47 -07:00
a9e1ee39d3 client: docker-finance.d: subscript: remove hledger default args
These args are now passed within container's `lib_hledger` or
docker-finance.d's default generated hledger.conf.
2024-09-24 18:12:47 -07:00
ba293524ef client: subscript: remove ledger in place of hledger
As said before; `lib_ledger` was meant to be a general abstraction to
any underlying CLI ledger.

But, between C++ `ledger` and Ledger Hardware Wallet, this abstraction
has become too confusing and counterproductive.

Since `hledger` will be the underlying implementation for the forseeable
future, all doubt should now be removed.
2024-09-23 18:10:02 -07:00
51bf587ceb client/container: rename 'subprofile' script to 'subscript'
- Provides clarity, avoids confusion (subprofile.bash -> subscript.bash)

- Changes filename in superscript source
  * End-user must update with client command `edit type=superscript`

- Changes filename in flow subprofile's docker-finance.d
  * Pre-existing subprofiles must manually rename their subscript file
2024-09-23 17:31:11 -07:00
c8d99e3f12 client: docker-finance.d: superscript: remove unused tag
Impl now appends, regardless of tag.
2024-09-23 17:31:11 -07:00
f96dae0210 client: src: lib_gen: impl overhaul for new args
- Rewrite to support new arguments
  * Related design changes and refactoring
  * Remove prompt for testing (use `dev=on` instead)
- Factor out superscript gen from subscript append
- Related print formatting changes
- Add more internal checks
2024-09-23 17:31:11 -07:00
e7d749ba22 client: docker-finance.d: Dockerfiles: cleanup, clarify 2024-09-17 20:06:33 -07:00
7e5355992b client: docker-finance.d: env: dev-tools: allow DOCKER_FINANCE_CLIENT_PLUGINS 2024-09-07 16:48:10 -07:00
b4fcc2ae0d client: Dockerfiles: comment all optional userspace packages
- Shouldn't be applied to base image by default
- Also removes `mc` from Ubuntu image as `mc` (more useful client-side)
2024-08-19 15:57:54 -07:00
284dd1d607 client: Dockerfiles: add commented pipx optional userspace
- `pipx` is no longer required by the base image
  * Package would be required for previous `xlsx2csv` install
2024-08-19 15:57:54 -07:00
569db8a1e6 client: Dockerfiles: dev-tools: refactor to use yq
Replaces `shyaml` dependency with `yq`.
2024-08-17 23:19:57 -07:00
fcc0b95061 client: docker-finance.d: subprofile: clarify hledger
Since inception, the intent was to abstract the "interface" to allow for
a general-purpose CLI accounting ledger. However, there appears to be
confusion about whether the underlying implementation is `ledger`
accounting software or `hledger` accounting software.

So, making it clearer that it's `hledger` accounting software (although,
will continue to keep the `ledger` command for backwards-compatibility).
2024-08-14 19:36:53 -07:00
5da89e19fb client: docker-finance.d: env: change default $DOCKER_FINANCE_*_FLOW
The previous 'hledger-flow' directory was originally dedicated to
hledger-flow data. The directory has now expanded into a full-fledged
bind-mounted volume for all end-user flow / `finance`-generated data.

Ergo, 'finance-flow' is now more appropriate.
2024-08-14 19:31:31 -07:00
082b946956 client: docker-finance.d: add plugins support 2024-08-12 18:36:27 -07:00
b034674ff2 client: superscript: remove share.d from $PATH
Executables in share.d should be explicitly called, for better security.
2024-08-07 21:13:36 -07:00
0db5566d9f client: add dfi alias
- `dfi` is now primary unified command (saves fingers)
  * `docker-finance` is still available, as this is only an addition
- Also fixes missing line continuation during install (#104)
2024-08-06 02:15:38 -07:00
4d3eef6067 client: new internal client versioning system
- Version is now determined on-the-fly from manifest file
- Internal versioning no longer depends on environment file
2024-07-13 03:01:06 -07:00
c68463bd2b client: fetch.yaml.in: remove redundant version
This element is found within the actual schema.
2024-07-13 00:46:57 -07:00
f2df54d3cc client: Dockerfiles: resolve apt CLI warning 2024-07-11 16:48:58 -07:00
4316172e4c container: subprofile.bash.in: add TODO re: --conf 2024-07-08 18:14:42 -07:00
bbbecff7f1 client: docker-finance.d: add hledger.conf.in 2024-07-08 18:13:34 -07:00
d115e2907d client: fetch.yaml.in: update Coinbase comment 2024-07-03 19:05:39 -07:00
decef35be4 client: create templated custom Dockerfiles 2024-06-26 14:58:19 -07:00
5989fdc4a3 client: subprofile.bash.in: update hledger-web arg
Upstream replaced --capabilities with --allow
2024-06-24 16:59:37 -07:00
369e2343ce client/container: bash: trivial impl for ledger-vui
Leverages journal to visidata for an alternative read-only terminal UI.
2024-06-24 16:59:37 -07:00
3c6c9311da client/container: bash: add hledger aliases
The original intent of the `ledger` facade was to describe a general
purpose "ledger" command abstraction; not specifically the `ledger`
software (predecessor to hledger) nor the `ledger` hardware device.

As `hledger` is currently the exclusive internal "ledger" component,
adding `hledger` as an alias seems to be an appropriate-enough addition
that won't break existing abstraction/functionality.
2024-06-24 16:59:34 -07:00
b5b61705c2 client: fetch.yaml.in: price: fetch from all APIs
Demonstrates a more realistic scenario.
2024-06-18 18:59:54 -07:00
b2f59764fc client: fetch.yaml.in: update to latest price impl 2024-06-17 23:15:23 -07:00
d2b40ec4c3 client: fetch.yaml.in: add cardano/ADA 2024-03-19 21:57:00 -07:00
b621e87df2 docker-finance | modern accounting for the power-user
Dedicated to Michael Morgan: a beautiful, beautiful soul.

---

Internal signing keys:

  Aaron Fiore (sole author)

    - 518A22F85BEFD32BCC99C48603F90C4F35E0213E
    - 31ECA5C347A0CC0815EDE730A3EACCFCDA7E685E
    - C8187C585CB07A4DA81CC0F37318B50EBE9C0DA8

Internal repositories (rebased from):

  Staging:

    $ git log -n1 --pretty=format:"%H"
    c8e0cd66f6c89fa7b3c62f72fb524a4cc454b7b6

    $ git rev-list --max-parents=0 HEAD
    ac3863b8c234755855f1aea3a07a853122decdf2

  Private:

    $ git log -n1 --pretty=format:"%H"
    69bb3591eaa2990a9637832bb484690e00c4f926

    $ git rev-list --max-parents=0 HEAD
    a5c1cc9fb593c4cf09bc0adfef6cb6d2964511ae
2024-03-08 23:42:21 -08:00