Commit Graph

761 Commits

Author SHA1 Message Date
c3364511b0 container: finance: lib_plugins: update usage help
- Clarify usage, add examples, note plugin support type
  * finance's `plugins` only supports shell-based plugins
    - To use `root` plugins, use `root` command (see `root help`)
2025-09-04 15:08:20 -07:00
745a16e086 container: finance: completion: add root 2025-09-04 15:08:20 -07:00
33486665a9 container: root: rootlogon.C: remove default help()
Help will automatically load when starting an interactive instance.
2025-09-04 15:08:19 -07:00
ed163448f9 container: finance: add lib_root impl (macro/plugin support)
- dfi's `root` now supports shell loading (and running) of
  macros/plugins:

  * An interactive ROOT.cern instance is no longer *always* needed:

    - For macros (non-server); a 'one-off' instance will start, load the
      given macro, run the macro and then the instance will exit.

      * Server(s) will maintain an interactive instance.

    - For plugins; an interactive instance will start, load the given
      plugin, and then leave the user to make their calls manually.

  * All repo macros and repo/custom plugins are available.

- By default, an interactive instance will start when no dfi `root`
  arguments are given.

See `root help` for details.
2025-09-04 15:08:19 -07:00
ae32cfa229 Merge pull request #214 into master
2ec14fa container: hledger-flow: paypal-business: add expenses description subaccount (Aaron Fiore)
ef3b255 container: hledger-flow: paypal: add expenses description subaccount (Aaron Fiore)
2025-09-04 12:12:22 -07:00
2ec14fa1e1 container: hledger-flow: paypal-business: add expenses description subaccount
- If expense description exists, add description as subaccount
  * This is consistent with all other legacy finance rules
    - Typically, legacy institutions provide a column for category type.
      Since PayPal doesn't provide that data, using the description will
      provide the needed information for granular (full view) reporting.

- Removes old TODO that is no longer applicable
  * End-user will need to use custom rules, if needed
2025-09-02 13:23:35 -07:00
ef3b255bac container: hledger-flow: paypal: add expenses description subaccount
- If expense description exists, add description as subaccount
  * This is consistent with all other legacy finance rules
    - Typically, legacy institutions provide a column for category type.
      Since PayPal doesn't provide that data, using the description will
      provide the needed information for granular (full view) reporting.
2025-09-02 13:22:56 -07:00
7daa325a89 Merge pull request #213 into master
b1ed20a container: hledger-flow: finish uniform fiat subaccounts (Aaron Fiore)
2025-08-29 13:15:37 -07:00
b1ed20a4c8 container: hledger-flow: finish uniform fiat subaccounts
- For consistency across *all* hledger-flow accounts/rules.
- For future-proofing legacy finance (as related to #163).
2025-08-29 13:09:54 -07:00
8172a7a6b7 Merge pull request #212 into master
178c197 container: lib_fetch: fix wording to reflect impl (Aaron Fiore)
2025-08-26 14:59:36 -07:00
178c197320 container: lib_fetch: fix wording to reflect impl 2025-08-26 14:06:46 -07:00
d63b92ba34 Merge pull request #211 into master
5e7453d client: lib_linter: specify .clang-format location (Aaron Fiore)
abac2a3 container: c++: run linter (Aaron Fiore)
2025-08-21 12:53:26 -07:00
5e7453d468 client: lib_linter: specify .clang-format location
This commit allows *custom* C++ plugins to be linted/formatted in the
same way as their repo counterparts (using the same repo rulesets).

Previously, when runing the linter, only *repo* C++ plugins would be
formatted. Since custom plugin formatting for both Bash and PHP are
already in place, this simply extends the feature to C++.
2025-08-19 14:17:42 -07:00
abac2a37d6 container: c++: run linter 2025-08-19 13:57:31 -07:00
cc7ecf27a6 Merge pull request #210 into master
1ce0802 container: c++: `dfi` namespace refactor (Aaron Fiore)
491d775 container: php: `dfi` namespace refactor (Aaron Fiore)
2025-08-19 13:55:32 -07:00
1ce08021f8 container: c++: dfi namespace refactor
Align with project alias, save the eyes and hands.
2025-08-19 13:54:18 -07:00
491d77553f container: php: dfi namespace refactor
Align with project alias, save the eyes and hands.
2025-08-19 13:53:50 -07:00
dbf9cbf6c9 Merge pull request #209 into master
903560c container: php: refactor for linter (Aaron Fiore)
2025-08-19 13:39:48 -07:00
903560ccc3 container: php: refactor for linter
- Removes deprecations (since PHP 8.4)
- Resolves linter errors
2025-08-19 11:09:05 -07:00
3adcb008d2 Merge pull request #208 into master
07b7105 container: fetch: refactor for php (Aaron Fiore)
2025-08-19 10:38:09 -07:00
07b710567d container: fetch: refactor for php
- Refactors locations for internal `fetch` impl and deps (composer)
  * A softer hardcoding without the need for a new autoloader
  * A restructured solution to silence the linter (phpstan)

NOTE: variables are prepended with *_PHP_* as to not bring confusion
with any other `dfi` dependencies or the `dfi` `root` module (C++).
2025-08-18 14:37:29 -07:00
c9406636c5 Merge pull request #206 into master
5c79419 CHANGELOG: add 1.0.0-rc.3 (Aaron Fiore)
21bb545 client: manifest: bump version to v1.0.0-rc.3 (Aaron Fiore)
v1.0.0-rc.3
2025-08-12 12:22:42 -07:00
5c7941944c CHANGELOG: add 1.0.0-rc.3 2025-08-12 12:18:29 -07:00
21bb54588c client: manifest: bump version to v1.0.0-rc.3 2025-08-12 12:05:56 -07:00
18e1993468 Merge pull request #207 into master
8fed7f8 client: lib_docker: make fatal if user not given (Aaron Fiore)
c2789f5 client: docker: don't make fatal for empty/invalid command (Aaron Fiore)
38391e0 client: lib_env: fix handling of global command (Aaron Fiore)
fd338b6 client: docker/lib_docker: make fatal for unsupported platform (Aaron Fiore)
2025-08-12 12:04:52 -07:00
8fed7f8c54 client: lib_docker: make fatal if user not given 2025-08-12 11:03:40 -07:00
c2789f54db client: docker: don't make fatal for empty/invalid command 2025-08-12 11:02:10 -07:00
38391e03c7 client: lib_env: fix handling of global command 2025-08-12 11:02:07 -07:00
fd338b60f6 client: docker/lib_docker: make fatal for unsupported platform 2025-08-12 11:02:04 -07:00
07d1cd13f1 Merge pull request #205 into master
5a06087 client: docker-finance.d: fetch: price: allow non-alpha character (Aaron Fiore)
671362b container: finance: fetch: prices: format non-alpha currencies (Aaron Fiore)
2025-08-11 12:44:35 -07:00
5a0608751a client: docker-finance.d: fetch: price: allow non-alpha character
Now supported in impl.
2025-08-08 14:29:59 -07:00
671362b445 container: finance: fetch: prices: format non-alpha currencies
Formats non-alpha character currencies for hledger's prices journal
(e.g., "1INCH", "USDC.e", etc.)
2025-08-08 13:58:38 -07:00
618109594d Merge pull request #204 into master
812d9cc container: hledger-flow: remove potential % interpretation (printf) (Aaron Fiore)
2025-08-08 12:59:01 -07:00
812d9cc7ce container: hledger-flow: remove potential % interpretation (printf)
Removes potential interpretation of percent signs in various types of
descriptions/notes/labels (otherwise, import may break).

Resolves "fatal: not enough arguments to satisfy format string" under
certain conditions.
2025-08-08 12:56:14 -07:00
fee4e00fe3 Merge pull request #203 into master
cc2e4a7 container: hledger-flow: btcpayserver: update mockups (Aaron Fiore)
5920d87 container: hledger-flow: btcpayserver: support "Legacy Invoice Export" plugin, update "Wallets" impl (Aaron Fiore)
2025-08-08 12:42:44 -07:00
cc2e4a736f container: hledger-flow: btcpayserver: update mockups
Reflects latest "Legacy Invoice Export" and "Wallets" exports.
2025-08-08 12:33:24 -07:00
5920d87f86 container: hledger-flow: btcpayserver: support "Legacy Invoice Export" plugin, update "Wallets" impl
BTCPay Server v2.2.0 has a new "Invoices" export format that is more
complex than the prior "Legacy Invoice Export" format.

To help facilitate the transition to the new format, upstream has
provided a plugin for backwards compatibility. However, this plugin
happens to provide additional columns that must be supported.

Additionaly, the "Wallets" format also has new columns with fee
information, so the impl now supports tx fees (prior, fees required
manual input).

The "Wallets" impl also now defaults to a refund expense account for
outgoing txs and adds tax rules & documentation for rationale.
2025-08-08 12:33:24 -07:00
f0d20ffe26 Merge pull request #202 into master
731f920 container: lib_taxes: remove non-alpha char (currency) hack (Aaron Fiore)
facde4f container: fetch: gemini: remove non-alpha char (currency) hack (Aaron Fiore)
b51b94d container: hledger-flow: support non-alpha chars (currency) (Aaron Fiore)
2025-08-08 12:31:00 -07:00
731f9206f8 container: lib_taxes: remove non-alpha char (currency) hack
Now supported within flow impl.
2025-08-08 12:25:18 -07:00
facde4f533 container: fetch: gemini: remove non-alpha char (currency) hack
Now supported within flow impl.
2025-08-08 12:25:18 -07:00
b51b94d8a3 container: hledger-flow: support non-alpha chars (currency)
Removes old hack for currencies with non-alpha characters.
2025-08-08 12:25:18 -07:00
5847ace601 Merge pull request #201 into master
418ed80 container: hledger-flow: ethereum-based: support non-alpha chars (currency) (Aaron Fiore)
0ce9302 container: hledger-flow: ethereum-based: rules (spam): add arbitrum/base/optimism, update polygon (Aaron Fiore)
cc024b8 container: hledger-flow: metamask: mockups: add arbitrum/base/optimism, update polygon (Aaron Fiore)
d270d56 client/container: ethereum-based: support Etherscan V2, add more L2 chains (Aaron Fiore)
2025-08-05 10:14:01 -07:00
418ed80a8c container: hledger-flow: ethereum-based: support non-alpha chars (currency)
- Fixes broken import of any tx that contains non-alpha character(s) in
  its currency (digits, etc.)
  * Currencies may now contain any character(s) supported by hledger
2025-08-04 15:27:33 -07:00
0ce9302e50 container: hledger-flow: ethereum-based: rules (spam): add arbitrum/base/optimism, update polygon 2025-08-04 15:07:42 -07:00
cc024b838e container: hledger-flow: metamask: mockups: add arbitrum/base/optimism, update polygon 2025-08-04 15:07:10 -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
183806da6d Merge pull request #200 into master
f8226cd container: hledger-flow: paypal-business: update mockup (Aaron Fiore)
2025-07-03 14:28:38 -07:00
f8226cdccb container: hledger-flow: paypal-business: update mockup
Use generic business name to avoid possibility of infringement.
2025-07-03 14:21:11 -07:00
09e2fa7df6 Merge pull request #199 into master
4718fcd container: hledger-flow: paypal: update fiat mockup (Aaron Fiore)
6fc4a15 container: hledger-flow: paypal: support latest fiat header (Aaron Fiore)
2025-07-03 14:17:41 -07:00
4718fcd0c4 container: hledger-flow: paypal: update fiat mockup
Reflects latest header and impl changes.
2025-07-03 14:13:31 -07:00