Commit Graph

35 Commits

Author SHA1 Message Date
9fec1b427c container: root: change base path, related refactor
The base path is now *outside* of the macro directory; allowing for a
more integrated view of `dfi`'s entire `root` system. This is more
apparent once running an interactive session where the expectation is
(more intuitively) that any path should be relative to 'src/root' and
not 'src/root/macro'.

The rationale for why this was in 'src/root/macro' to begin with stems
from how `root` (by default) will automatically load rootlogon.C in the
directory that `root` is started. This is causing more confusion than
not because `dfi`'s usage of `root` is not limited to macros.

These changes skirt the line between needing a major API bump and not
but, so far, appears to be on the side of *not*. However, the TODOs
noted for macro loading should be addressed prior to any API changes.
2025-11-21 17:32:25 -08:00
273f2cef49 container: root: internal: update TODO re: c++23 2025-11-21 11:28:14 -08:00
ca59169116 container: root: rewrite throw handler, refactor using common types
- Refactor using common types that were once internal
- Removes ancient macro approaches to C++20 solutions
- Changes `Exception` message type to use std::string
  * std::string_view isn't worthwhile in this context
2025-11-21 11:15:58 -08:00
fa91fd02e8 container: root: factor out internal types to common
These types and handlers are too generic to be kept internal only.

They can now be used across all root macros, plugins and overall API.
2025-11-20 17:44:32 -08:00
cf68f02d2f container: root: test: utility: add tests for common 2025-11-19 13:23:52 -08:00
0d4b293b2d client/container: root: refactor common namespace
- Factor out respective common from macro and apply to all scopes
  * `dfi::common`
  * `dfi::macro::common`
  * `dfi::plugin::common`

- Add deprecation warnings in `dfi::macro::common`
  * Common functionality (not macro specific) is now in `dfi::common`

- Add convenience wrappers to inner common impl, where appropriate
  * Allows for backwards compatibility

- Add/update/clarify code docs and Doxygen definitions

- Related refactoring

NOTE: all changes are backward compatible (no need to bump major).
2025-11-19 13:23:52 -08:00
8c76e7cc11 container: root: macro: common: throw if invalid loading path
- Fixes silent failure when attempting to load non-existent/invalid path
- Applies to any macro, plugin or path that's loaded through this class
2025-11-14 13:19:09 -08:00
8b59cee84c client/container: root: migrate to Botan3
- This is possible now that `dfi`'s ROOT build supports C++20
- No internal `dfi` API or impl changes are necessary
  * This includes any Botan signatures
2025-11-07 13:13:53 -08:00
d83d9835da container: root: macro: Hash: change output to CSV format
The output can now be used with container's CSV tools.
2025-09-19 10:48:01 -07:00
c604ca8e39 container: root: macro: Random: change output to CSV format
The output can now be used with container's CSV tools.
2025-09-19 10:18:36 -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
abac2a37d6 container: c++: run linter 2025-08-19 13:57:31 -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
f14adfea35 container: root: move clang-format to container base path
File needs to be in parent directory of all C++ source files.
2024-08-12 18:59:51 -07:00
6e250c7282 container: root: add plugins support
- Implements support for docker-finance C++ plugins
- Adds shell command execution wrapper
- Refactors previous loader path
  * A './' path is unnecessary and will break calls to '/' path
2024-08-12 18:59:51 -07:00
e7eb92cb33 root: macro: rootlogon.C: update usage
- Adds crypto examples
- Updates/clarifies comments
2024-07-24 15:02:21 -07:00
7901421fd4 root: macro: crypto: add random.C
Generates CSPRNG numbers of various types (impl-specific).
2024-07-24 15:02:21 -07:00
480b42e273 root: test: Random: assert multiple types
- Add test cases for multiple types
- Rewrite to include new interface/impl
- Fix assertion test to not exceed error boundary
2024-07-23 22:21:41 -07:00
879eb6f785 root: src: Random: support multiple types
Allows signed/alternative-unsigned types (impl-specific).
2024-07-23 22:21:41 -07:00
1092cd4adc root: macro: crypto: add hash.C
Generates encoded digests using all available cryptographic libraries.
2024-07-23 20:28:59 -07:00
b08187abba root: macro: common: crypto: use type aliases
Will make accessing scoped tag types a breeze.
2024-07-23 20:27:20 -07:00
0b15857414 root: macro: test: reorg/refactor unit/benchmark 2024-07-23 15:16:33 -07:00
5c47cee552 root: macro: crypto: namespace refactor into common 2024-07-23 15:16:33 -07:00
c3aee1dee8 root: macro: web: namespace refactor into common 2024-07-23 15:16:33 -07:00
a0091423d1 root: macro: utility: namespace refactor into common 2024-07-23 15:16:33 -07:00
8eda51c6bc root: macro: web: crypto: refactor class name
Intended to be used only for RNG.
2024-07-23 15:16:33 -07:00
aeacc69788 root: macro: web: namespace/class name refactor 2024-07-23 15:16:33 -07:00
f8494c18b4 root: macro: web/server common code refactor 2024-07-23 15:16:33 -07:00
fbf8b7ffae root: macro: factor out common code into utility 2024-07-22 17:41:34 -07:00
09c45c794b root: macro: layout reorg, related refactor 2024-07-22 17:41:33 -07:00
de81ebac84 container: root: macro: rootlogon.C: update usage
API headers are now loaded automatically.
2024-07-17 21:34:51 -07:00
8d2389bee2 container: root: refactor using internal throw/exception handler 2024-07-17 21:34:51 -07:00
9873e63d56 container: root: add unit test for internal throw/exception handler 2024-07-17 21:34:51 -07:00
612f9e5499 container: root: add internal throw/exception handler 2024-07-17 19:45:06 -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