Commit Graph

235 Commits

Author SHA1 Message Date
8a6ea479e2 client: plugins: docker: add example 2024-08-12 18:36:26 -07:00
01737d37bf client: lib_gen: new custom plugin layout, update example plugin
- Generates new custom plugin directory layout upon `gen`
  * Allows for drop-in client-side/container-side custom plugins

- Moved container plugin example into container's plugins
  * Plugin is no longer generated upon `gen` (it's available in-repo)

- Updates plugin example
    - Provides requisite lib_finance initialization
    - Refactored, added more checks
    - Expand example case
    - Linter fixes
2024-08-12 18:30:45 -07:00
acbe690de3 Merge pull request #110 into master
5ef5d24 container: bash: completion: add `times` (Aaron Fiore)
5eac855 container: bash: add `times` / lib_times (Aaron Fiore)
923a9ee client: lib_gen: generate 'times' (Aaron Fiore)
6da9b71 client: manifest: add timew package (Aaron Fiore)
e50f4b6 client: Dockerfiles: add timew package (Aaron Fiore)
2024-08-09 18:17:54 -07:00
5ef5d24f3b container: bash: completion: add times 2024-08-09 18:03:31 -07:00
5eac855acf container: bash: add times / lib_times 2024-08-09 18:03:31 -07:00
923a9eee24 client: lib_gen: generate 'times'
- Sets a location for:
  * timew database
  * Anything time-related (among all profiles)
2024-08-09 00:01:48 -07:00
6da9b71030 client: manifest: add timew package 2024-08-09 00:01:46 -07:00
e50f4b62cb client: Dockerfiles: add timew package 2024-08-09 00:01:40 -07:00
dbfe038bf5 Merge pull request #109 into master
bbf96b0 container: bash: completion: add plugins support (Aaron Fiore)
a4f9b40 container: bash: add plugins support / lib_plugins (Aaron Fiore)
eaec539 client: lib_gen: generate plugins (Aaron Fiore)
2024-08-08 16:24:11 -07:00
bbf96b0cc2 container: bash: completion: add plugins support 2024-08-08 16:08:54 -07:00
a4f9b401d3 container: bash: add plugins support / lib_plugins
- Executes plugins within profile/subprofile context
  * Hooks into the container's global environment
2024-08-08 16:08:49 -07:00
eaec539c22 client: lib_gen: generate plugins
- Sets a location for plugins
  * Allows for end-user custom plugins
- Provides default example plugin
2024-08-08 16:00:03 -07:00
7b4648b1d4 Merge pull request #108 into master
be6e366 client: lib_gen: fix missing copy of custom Dockerfile (Aaron Fiore)
b30c00f client: lib_gen: refactor flow generation (Aaron Fiore)
2024-08-07 21:36:15 -07:00
be6e366d80 client: lib_gen: fix missing copy of custom Dockerfile
Existing file was backed up but repo default was not copied over.
2024-08-07 21:33:21 -07:00
b30c00f3b6 client: lib_gen: refactor flow generation
- Checks for/creates established layout
- Refactor subprofile function names
- Clarifies questions/documentation
2024-08-07 21:33:21 -07:00
9112902a3d Merge pull request #107 into master
b034674 client: superscript: remove share.d from $PATH (Aaron Fiore)
2024-08-07 21:14:50 -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
4eef6a01ef Merge pull request #106 into master
546f5b5 client: docker.bash: fix usage typo (Aaron Fiore)
2024-08-07 21:11:49 -07:00
546f5b528a client: docker.bash: fix usage typo 2024-08-07 19:52:26 -07:00
cb578a2aca Merge pull request #105 into master
a817901 container: add `dfi` alias (Aaron Fiore)
0db5566 client: add `dfi` alias (Aaron Fiore)
3230a5b README: add `dfi` alias (Aaron Fiore)
2024-08-06 02:20:35 -07:00
a81790108b container: add dfi alias
- `dfi` is now primary unified command (saves fingers)
  * `docker-finance` is still available, as this is only an addition
2024-08-06 02:15:38 -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
3230a5b63d README: add dfi alias
- `dfi` is now primary unified command (saves fingers)
  * `docker-finance` is still available, as this is only an addition
2024-08-06 02:03:28 -07:00
b692a6145f Merge pull request #104 into master
c8cb9d7 README: add `mc` as optional recommended (Aaron Fiore)
90f9639 repo/client: move shell env prep to install.bash (Aaron Fiore)
2024-08-06 00:19:38 -07:00
c8cb9d786b README: add mc as optional recommended 2024-08-06 00:10:58 -07:00
90f96399f0 repo/client: move shell env prep to install.bash 2024-08-06 00:10:58 -07:00
cb52417c9c Merge pull request #103 into master
ef5eda8 README: add bash completion to install (Aaron Fiore)
646ca3a Dockerfiles: source container bash completion (Aaron Fiore)
7f86b6a client: add preliminary bash completion (Aaron Fiore)
46112a9 container: add preliminary bash autocompletion (Aaron Fiore)
2024-08-05 20:09:42 -07:00
ef5eda8ce8 README: add bash completion to install 2024-08-05 20:02:08 -07:00
646ca3af85 Dockerfiles: source container bash completion 2024-08-05 16:22:22 -07:00
7f86b6a250 client: add preliminary bash completion 2024-08-05 16:22:21 -07:00
46112a9d43 container: add preliminary bash autocompletion 2024-08-05 16:22:19 -07:00
468b1b02fa Merge pull request #102 into master
d7b25e0 php: fetch: prices: base: catch unrecoverable CoinGecko error (Aaron Fiore)
f222a5e php: fetch: prices: crypto: throw errors with nested status (Aaron Fiore)
2024-07-30 23:09:25 -07:00
d7b25e0dae php: fetch: prices: base: catch unrecoverable CoinGecko error
Thrown when 'all' years are requested without paid-plan API key.
2024-07-30 22:54:04 -07:00
f222a5e654 php: fetch: prices: crypto: throw errors with nested status 2024-07-30 22:47:57 -07:00
c1088a1f83 Merge pull request #100 into master
7e1bd8f client: bump version to v1.0.0-beta.2 (Aaron Fiore)
v1.0.0-beta.2
2024-07-30 19:18:49 -07:00
7e1bd8f5e2 client: bump version to v1.0.0-beta.2 2024-07-30 19:16:10 -07:00
f13b4e3c08 Merge pull request #99 into master
de9efea CHANGELOG: add v1.0.0-beta -> v1.0.0-beta.2 (Aaron Fiore)
2024-07-30 19:12:15 -07:00
de9efea245 CHANGELOG: add v1.0.0-beta -> v1.0.0-beta.2 2024-07-30 19:05:45 -07:00
6c92dbd56e Merge pull request #101 into master
5609704 bash: lib_fetch: create prices dir if nonexistent (Aaron Fiore)
2024-07-30 19:04:26 -07:00
5609704b25 bash: lib_fetch: create prices dir if nonexistent 2024-07-30 19:02:26 -07:00
7e09f044a5 Merge pull request #98 into master
5ed63e6 README: various updates/fixes (Aaron Fiore)
2024-07-30 18:29:51 -07:00
5ed63e63ef README: various updates/fixes
- Reflects the latest impl
- Adds various clarifications
- Adds clarity to environment `gen`
- Fixes/Improves installation notes/process
2024-07-30 18:21:20 -07:00
7881f80b62 Merge pull request #97 into master
6b5c8af client: docker.bash: fix help usage (dev-tools alias) (Aaron Fiore)
e9bd7f3 client: lib_docker: add USER/WORKDIR to finalize Dockerfile (Aaron Fiore)
c49e0ad client: lib_gen: fix missing directory slash (Aaron Fiore)
2024-07-29 16:28:18 -07:00
ad903387c8 Merge pull request #96 into master
731a8c9 hledger-flow: changelly: cost-basis comments for bitcoin.tax (Aaron Fiore)
f228da9 hledger-flow: bittrex: cost-basis work-around for bitcoin.tax (Aaron Fiore)
1975e1d hledger-flow: coinbase: cost-basis work-around for bitcoin.tax (Aaron Fiore)
2c1b896 hledger-flow: gemini: exchange: cost-basis work-around for bitcoin.tax (Aaron Fiore)
6d119df container: lib_taxes: cost-basis work-around for bitcoin.tax (Aaron Fiore)
2024-07-29 16:21:51 -07:00
731a8c9563 hledger-flow: changelly: cost-basis comments for bitcoin.tax
Issue #51 describes at least a few undocumented bitcoin.tax issues:

  - Bicoin.tax gives unexpected cost-basis results when `Fee` is given
    with `Total` (when `Total` is given in place of `Price`). The
    expectation is that bitcoin.tax will perform the cost-basis
    calculation on `Total` when `Fee` is also given.

    However, bitcoin.tax *will* give expected cost-basis results if
    `Price` is given in place of `Total` (with `Fee` also given) *or* if
    `Total` is given *after* local cost-basis adjustments are made (but
    *without* `Fee` given).

    The rationale for why docker-finance doesn't use `Price`:

      * docker-finance has all of the `Total`s; so `Price` isn't
        necessary.

      * Local price information isn't available for most trades (and
        shouldn't be necessary since all `Total`s are available).

  - Additionally, when `Fee` is non-fiat (crypto), it now must be marked
    as a SPEND in order to be disposed (and to produce an accurate
    closing report).

  - Finally, if `FeeCurrency` *does* not match either `Symbol` or
    `Currency` (e.g., BTC-ETH w/ BNB fee), it's unknown if cost-basis
    must be calculated locally as well (if `Total` is given). Local
    calculations cannot be done because `Fee` price information is
    (almost certainly) not available for this type of trade.

Until upstream can assert that attaching the `Fee` will subsequently
adjust the cost-basis of `Total` *and* dispose of the `Fee` in the
process (while also allowing `Total` to be used in place of `Price`),
the `Fee` (and `FeeCurrency`) column(s) must not be populated and values
instead moved to SPEND (as described above).

Upstream is aware of these issues (since May) and they're in the process
of resolution. In the meantime, docker-finance work-arounds should
suffice for all trades that have a fiat `Fee` and/or a
`Fee`/`FeeCurrency` that matches one side of the trading pair.
2024-07-29 16:15:50 -07:00
f228da98d8 hledger-flow: bittrex: cost-basis work-around for bitcoin.tax
Issue #51 describes at least a few undocumented bitcoin.tax issues:

  - Bicoin.tax gives unexpected cost-basis results when `Fee` is given
    with `Total` (when `Total` is given in place of `Price`). The
    expectation is that bitcoin.tax will perform the cost-basis
    calculation on `Total` when `Fee` is also given.

    However, bitcoin.tax *will* give expected cost-basis results if
    `Price` is given in place of `Total` (with `Fee` also given) *or* if
    `Total` is given *after* local cost-basis adjustments are made (but
    *without* `Fee` given).

    The rationale for why docker-finance doesn't use `Price`:

      * docker-finance has all of the `Total`s; so `Price` isn't
        necessary.

      * Local price information isn't available for most trades (and
        shouldn't be necessary since all `Total`s are available).

  - Additionally, when `Fee` is non-fiat (crypto), it now must be marked
    as a SPEND in order to be disposed (and to produce an accurate
    closing report).

  - Finally, if `FeeCurrency` *does* not match either `Symbol` or
    `Currency` (e.g., BTC-ETH w/ BNB fee), it's unknown if cost-basis
    must be calculated locally as well (if `Total` is given). Local
    calculations cannot be done because `Fee` price information is
    (almost certainly) not available for this type of trade.

Until upstream can assert that attaching the `Fee` will subsequently
adjust the cost-basis of `Total` *and* dispose of the `Fee` in the
process (while also allowing `Total` to be used in place of `Price`),
the `Fee` (and `FeeCurrency`) column(s) must not be populated and values
instead moved to SPEND (as described above).

Upstream is aware of these issues (since May) and they're in the process
of resolution. In the meantime, docker-finance work-arounds should
suffice for all trades that have a fiat `Fee` and/or a
`Fee`/`FeeCurrency` that matches one side of the trading pair.
2024-07-29 16:15:50 -07:00
6b5c8af925 client: docker.bash: fix help usage (dev-tools alias) 2024-07-27 22:10:35 -07:00
e9bd7f322f client: lib_docker: add USER/WORKDIR to finalize Dockerfile
Guarantees that any additions to custom Dockerfile (or a missing custom)
will not prevent bringing `up` a container into the correct environment.
2024-07-27 16:32:42 -07:00
c49e0ad795 client: lib_gen: fix missing directory slash 2024-07-27 16:26:17 -07:00
1975e1dbbb hledger-flow: coinbase: cost-basis work-around for bitcoin.tax
Issue #51 describes at least a few undocumented bitcoin.tax issues:

  - Bicoin.tax gives unexpected cost-basis results when `Fee` is given
    with `Total` (when `Total` is given in place of `Price`). The
    expectation is that bitcoin.tax will perform the cost-basis
    calculation on `Total` when `Fee` is also given.

    However, bitcoin.tax *will* give expected cost-basis results if
    `Price` is given in place of `Total` (with `Fee` also given) *or* if
    `Total` is given *after* local cost-basis adjustments are made (but
    *without* `Fee` given).

    The rationale for why docker-finance doesn't use `Price`:

      * docker-finance has all of the `Total`s; so `Price` isn't
        necessary.

      * Local price information isn't available for most trades (and
        shouldn't be necessary since all `Total`s are available).

  - Additionally, when `Fee` is non-fiat (crypto), it now must be marked
    as a SPEND in order to be disposed (and to produce an accurate
    closing report).

  - Finally, if `FeeCurrency` *does* not match either `Symbol` or
    `Currency` (e.g., BTC-ETH w/ BNB fee), it's unknown if cost-basis
    must be calculated locally as well (if `Total` is given). Local
    calculations cannot be done because `Fee` price information is
    (almost certainly) not available for this type of trade.

Until upstream can assert that attaching the `Fee` will subsequently
adjust the cost-basis of `Total` *and* dispose of the `Fee` in the
process (while also allowing `Total` to be used in place of `Price`),
the `Fee` (and `FeeCurrency`) column(s) must not be populated and values
instead moved to SPEND (as described above).

Upstream is aware of these issues (since May) and they're in the process
of resolution. In the meantime, docker-finance work-arounds should
suffice for all trades that have a fiat `Fee` and/or a
`Fee`/`FeeCurrency` that matches one side of the trading pair.
2024-07-27 00:20:40 -07:00