Commit Graph

145 Commits

Author SHA1 Message Date
301ad39c1a client/container: refactor w/ updated global basename 2024-12-24 01:46:20 -08:00
ed57dc0749 client/container: use 'dfi' as global basename
Aligned with installation, will make usage help clearer.
2024-12-24 01:46:20 -08:00
7517488943 client: src: docker.bash: fix typo in usage help 2024-12-18 21:44:36 -08:00
83f5355dc3 client: Dockerfiles: remote: hledger-suite: update hledger-iadd resolver
Uses older resolver (should be appropriate to v1.3.21).

Fixes build breakage.
2024-12-12 19:58:40 -08:00
d0a9384648 client: Dockerfiles: remote: hledger-suite: bump hledger to 1.41 2024-12-12 00:23:53 -08:00
c8611edacb client/container: src: completion: plugins enhancements
- Re-enables space after completion for plugin arguments
- Ignores internal/implementation files when completing
  * Files must be within an 'internal'/'impl' directory
2024-10-09 21:13:36 -07:00
d965a11b3e client: src: lib_gen: refactor profile variables
Makes clearer their respective roles.
2024-10-09 21:09:46 -07: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
bfdc2452da client: src: lib_gen: filter custom Dockerfile's .in files
Adds filter to remove noisy license clutter in custom Dockerfile output.

This is needed because of the amount of `edit` used on the file.

The license still applies, regardless.
2024-09-25 21:15:03 -07:00
a1cea1fd1e client: docker-finance.d: Dockerfiles: add docker-finance version tag 2024-09-25 20:54:00 -07:00
4a836a77c4 client: src: lib_gen: filter container config .in files
Adds filters to remove noisy license clutter in configuration output.

This is needed because of the amount of `edit` used on configurations.

The license still applies, regardless.
2024-09-24 19:58:21 -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
ae2c08d5df client: src: lib_docker: filter docker related .in files
Creates a clutter-free finalized Dockerfile and docker-compose.yml by
removing all comments and blank lines.
2024-09-24 19:57:44 -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
e6ccd9607c client: completion: add gen arguments 2024-09-23 17:31:12 -07:00
f2102c7b90 client: src: lib_gen: reduce prompt language verbosity 2024-09-23 17:31:11 -07:00
169034cbe2 client: src: lib_gen: refactor/update editor related
- Creates a reusable editor function
- Skipping confirmations will also skip opening up the editor
  * Allows for complete generation without intentional interruption
2024-09-23 17:31:11 -07:00
0ec42d2420 client: rename $global_shell_file -> $global_superscript
Provides clarity, avoids confusion.
2024-09-23 17:31:11 -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
e8509384d2 client: src: lib_gen: add args and args parsing
- Allows for a dynamic `gen` experience
  * All configs/accounts can now be (re)generated on-the-fly
    - Individually, by section, or all at once
  * Adds prompt confirmation option
  * Adds developer profile option
2024-09-23 17:31:11 -07:00
9f6ad19112 client: src: lib_gen: move hledger conf to subprofile gen
Subprofile's hledger conf should be within subprofile generation.
2024-09-22 19:35:22 -07:00
c3cf81572b client: src: refactor system checks
- UID and dependency checks are done in internal `lib_docker`/`lib_env`
- Moves `sed` check to appropriate `lib_env`
2024-09-22 19:35:22 -07:00
d8222c60fb client: src: refactor environment/gen handler
- Moves environment handling from `lib_gen` to `lib_env`
- Related refactoring
2024-09-22 19:35:22 -07:00
6d0a38f6b5 client: manifest: update to latest impl 2024-09-17 20:06:33 -07:00
e7d749ba22 client: docker-finance.d: Dockerfiles: cleanup, clarify 2024-09-17 20:06:33 -07:00
dc4990ab90 client: docker: complete build overhaul, optimize
This commit brings a complete overhaul of the build system:

- Creates a separation of concerns for 'local' and 'remote' building
  * 'local' is built locally via the docker-finance `build` command
  * 'remote' is built *outside* of the docker-finance `build` command
    (pushed to a remote registry and then pulled by the 'local' build)
  * Related refactoring
    - Dockerfiles
    - `lib_gen`

- Adds remote image 'hledger-suite'
  * Provides the latest versions of all `hledger` related binaries
  * No longer relies on package maintainers / out-dated packages

- Adds remote image 'docker-finance'
  * Provides base image for 'finance' and 'dev-tools' images
    - tags 'archlinux' | 'ubuntu' | 'dev-tools'

- Removes previous `hledger` related build modules
  * Removes building any `hledger` related binaries locally

- Removes 'experimental' build
  * End-user can use local custom Dockerfile and/or custom tag instead

- Updates the 'default' | 'slim' | 'tiny' | 'micro' build types
  * Refactors build type requirements into separate build modules
    - Adds 'fetch' module
    - Adds 'track' module
    - Adds 'user' module
      * creates container user *after* base and all other modules
      * allows for quick re-building across multiple local users
    - Updates 'root' module
  * `lib_docker`
    - Updates usage help
    - Adds build modules per build type

- Huge optimizations
  * Vastly improves build times
    - ~60% faster w/ a fresh build
    - ~60%-90% faster rebuild (depending on image type)
  * Vastly improves image sizes
    - e.g., 'default' Arch Linux image size is ~50% smaller
2024-09-17 20:06:33 -07:00
d4d7027f22 client: dev-tools: lib_linter: add DOCKER_FINANCE_CLIENT_PLUGINS 2024-09-07 18:46:39 -07:00
75ed30a05d client: Dockerfiles: dev-tools: add DOCKER_FINANCE_CLIENT_PLUGINS 2024-09-07 16:48:27 -07:00
7e5355992b client: docker-finance.d: env: dev-tools: allow DOCKER_FINANCE_CLIENT_PLUGINS 2024-09-07 16:48:10 -07:00
d8cc3c097f client: docker: lib_plugins: allow path depth
- Allows plugins to function within subdirectories
- Removes redundant arg checking
2024-09-04 18:17:13 -07:00
1e818b708b client: dev-tools: lib_linter: return compose down
- Don't return value of network removal
  * compose value is more appropriate
- Silence error warning
  * will complain if network is already in use
2024-08-21 20:24:43 -07:00
a9e2976748 client: Dockerfiles: optimize by moving useradd
Adding the finance user as late as possible within the base Dockerfile
will allow for faster build times when rebuilding with different users
(the base layers won't need to be rebuilt).
2024-08-20 17:40:23 -07:00
3519c690bd client: manifest: bump version to v1.0.0-beta.3 2024-08-20 16:40:23 -07:00
01ab9da53d client: lib_docker: remove platform from network name
There should be a single network amongst all docker-finance containers.
2024-08-19 22:43:57 -07:00
623c3f9e1a client: lib_docker: add tag to container name
Helps identify environment/build type during runtime.
2024-08-19 22:43:57 -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
37a4a630d9 client: manifest: remove pipx, replace with packaged csvkit 2024-08-19 15:57:54 -07:00
3b01ce8cc7 client: Dockerfiles: remove pipx, replace with packaged csvkit 2024-08-19 15:57:54 -07:00
bd3dec6a94 client: lib_docker: version: refactor to use yq
Replaces `shyaml` dependency with `yq`.
2024-08-17 23:19:57 -07:00
c82300b629 client: manifest: dev-tools: add yq 2024-08-17 23:19:57 -07:00
569db8a1e6 client: Dockerfiles: dev-tools: refactor to use yq
Replaces `shyaml` dependency with `yq`.
2024-08-17 23:19:57 -07:00