Merge pull request #301 into master
All checks were successful
docker-finance / all (push) Successful in 33m49s

7c9f678c repo: gitea: workflows: dfi: update to reflect default paths (Aaron Fiore)
4d6a41a3 client: move `docker-finance.d` to `conf.d` (Aaron Fiore)
8dc028b3 container: lib_finance: change `docker-finance.d` to `conf.d` (Aaron Fiore)
489d7019 client: lib_gen: change `docker-finance.d` to `conf.d` (Aaron Fiore)
dd669929 client: lib_env: change `docker-finance.d` to `conf.d` (Aaron Fiore)
03f43f40 client: docker-finance.d: env: change default paths (Aaron Fiore)
This commit was merged in pull request #301.
This commit is contained in:
2026-02-18 13:36:27 -08:00
14 changed files with 81 additions and 79 deletions

View File

@@ -50,15 +50,11 @@ function host::clean()
docker system prune -f
docker builder prune -af
# Remove default `dfi` layout
# Remove default environment and layout
local _paths
_paths+=(".bashrc")
_paths+=(".config")
_paths+=(".docker")
_paths+=("docker-finance")
_paths+=("finance-flow")
_paths+=("plugins")
_paths+=("share.d")
for _path in "${_paths[@]}"; do
rm -fr "${HOME:?}/${_path:?}"
done
@@ -78,7 +74,7 @@ function host::clean()
function client::install()
{
"${HOME:?}"/docker-finance/client/install.bash
"${HOME:?}"/docker-finance/repo/client/install.bash
source "${HOME:?}"/.bashrc
}
@@ -134,7 +130,7 @@ function client::finance::edit()
# Build: uncomment all optional packages and plugin dependencies
if [[ "$_tag" == "default" ]]; then
local _file
_file="${HOME:?}/.config/docker-finance.d/client/$(uname -s)-$(uname -m)/archlinux/default/Dockerfiles/${USER:?}@$(uname -n)"
_file="${HOME:?}/docker-finance/conf.d/client/$(uname -s)-$(uname -m)/archlinux/default/Dockerfiles/${USER:?}@$(uname -n)"
[ ! -f "$_file" ] && exit 1
sed -i '18,56s/#//' "$_file"
fi
@@ -372,7 +368,7 @@ function container::finance::edit()
[[ -z "$CI_DFI_FETCH_MOBULA" || -z "$CI_DFI_FETCH_ETHERSCAN" ]] && exit 1
local -r _file="${HOME}/finance-flow/profiles/testprofile/${USER}/docker-finance.d/fetch/fetch.yaml"
local -r _file="${HOME}/docker-finance/flow/profiles/testprofile/${USER}/conf.d/fetch/fetch.yaml"
[ ! -f "$_file" ] && exit 1
# `prices`
@@ -625,7 +621,7 @@ function container::finance::times()
# NOTE: impl-specific: currently, timewarrior requires confirmation
# which cannot be passed here (via "< <(echo yes)").
local -r _path="${HOME:?}/finance-flow/times/timew"
local -r _path="${HOME:?}/docker-finance/flow/times/timew"
mkdir -p "$_path" && touch "${_path}/timewarrior.cfg"
# Initial run presents confirmation dialog (so echo "yes")

View File

@@ -60,7 +60,7 @@ jobs:
# toward the runner's actual home rather than the job's temporary cache home
- name: Host preparation (workspace)
run: |
cp -aR ${{ gitea.workspace }} "${HOME}"/docker-finance
mkdir "${HOME}"/docker-finance && cp -aR ${{ gitea.workspace }} "${HOME}"/docker-finance/repo
##
## Client (host)
@@ -68,7 +68,7 @@ jobs:
- name: client::install
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::install
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::install
##
## Client (finance)
@@ -76,63 +76,63 @@ jobs:
- name: client::finance::gen
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::gen
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::gen
- name: client::finance::edit
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::edit
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::edit
- name: client::finance::build
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::build
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::build
- name: client::finance::backup
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::backup
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::backup
- name: client::finance::up
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::up
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::up
- name: client::finance::stop
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::stop
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::stop
- name: client::finance::start
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::start
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::start
- name: client::finance::down
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::down
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::down
- name: client::finance::shell
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::shell
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::shell
- name: client::finance::exec
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::exec
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::exec
- name: client::finance::plugins
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::plugins
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::plugins
- name: client::finance::run
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::run
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::run
- name: client::finance::version
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::version
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::version
- name: client::finance::update
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::update
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::update
- name: client::finance::rm
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::finance::rm
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::finance::rm
##
## Container (finance)
@@ -143,55 +143,55 @@ jobs:
CI_DFI_FETCH_MOBULA=${{ secrets.CI_DFI_FETCH_MOBULA }} \
CI_DFI_FETCH_COINGECKO=${{ secrets.CI_DFI_FETCH_COINGECKO }} \
CI_DFI_FETCH_ETHERSCAN=${{ secrets.CI_DFI_FETCH_ETHERSCAN }} \
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::edit
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::edit
- name: container::finance::fetch
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::fetch
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::fetch
- name: container::finance::import
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::import
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::import
- name: container::finance::hledger
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::hledger
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::hledger
- name: container::finance::hledger-ui
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::hledger-ui
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::hledger-ui
- name: container::finance::hledger-vui
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::hledger-vui
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::hledger-vui
- name: container::finance::hledger-web
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::hledger-web
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::hledger-web
- name: container::finance::meta
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::meta
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::meta
- name: container::finance::reports
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::reports
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::reports
- name: container::finance::taxes
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::taxes
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::taxes
- name: container::finance::times
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::times
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::times
- name: container::finance::plugins
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::plugins
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::plugins
- name: container::finance::root
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash container::finance::root
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash container::finance::root
##
## Client (dev-tools)
@@ -199,75 +199,75 @@ jobs:
- name: client::dev-tools::gen
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::gen
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::gen
- name: client::dev-tools::edit
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::edit
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::edit
- name: client::dev-tools::build
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::build
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::build
- name: client::dev-tools::backup
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::backup
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::backup
- name: client::dev-tools::up
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::up
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::up
- name: client::dev-tools::stop
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::stop
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::stop
- name: client::dev-tools::start
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::start
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::start
- name: client::dev-tools::down
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::down
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::down
- name: client::dev-tools::shell
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::shell
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::shell
- name: client::dev-tools::exec
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::exec
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::exec
- name: client::dev-tools::plugins
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::plugins
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::plugins
- name: client::dev-tools::run
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::run
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::run
- name: client::dev-tools::version
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::version
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::version
- name: client::dev-tools::update
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::update
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::update
- name: client::dev-tools::license
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::license
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::license
- name: client::dev-tools::linter
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::linter
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::linter
- name: client::dev-tools::doxygen
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::doxygen
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::doxygen
- name: client::dev-tools::rm
run: |
"${HOME}"/docker-finance/.gitea/workflows/dfi.bash client::dev-tools::rm
"${HOME}"/docker-finance/repo/.gitea/workflows/dfi.bash client::dev-tools::rm
##
## Host (act_runner)

View File

@@ -2,7 +2,7 @@
# docker-finance | modern accounting for the power-user
#
# Copyright (C) 2021-2024 Aaron Fiore (Founder, Evergreen Crypto LLC)
# Copyright (C) 2021-2024,2026 Aaron Fiore (Founder, Evergreen Crypto LLC)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -66,26 +66,29 @@ fi
# Client-specific environment, including bind mounts (client view)
if [ -z "$global_client_base_path" ]; then
global_client_base_path="$(dirname "$(realpath -s $0)" | rev | cut -d'/' -f3- | rev)"
fi
if [ -z "$DOCKER_FINANCE_CLIENT_CONF" ]; then
export DOCKER_FINANCE_CLIENT_CONF="${HOME}/.config/docker-finance.d"
export DOCKER_FINANCE_CLIENT_CONF="${global_client_base_path}/conf.d"
fi
if [ -z "$DOCKER_FINANCE_CLIENT_REPO" ]; then
DOCKER_FINANCE_CLIENT_REPO="$(dirname "$(realpath -s $0)" | rev | cut -d'/' -f2- | rev)"
export DOCKER_FINANCE_CLIENT_REPO
export DOCKER_FINANCE_CLIENT_REPO="${global_client_base_path}/repo"
fi
if [[ -z "$DOCKER_FINANCE_CLIENT_PLUGINS" ]]; then
export DOCKER_FINANCE_CLIENT_PLUGINS="${HOME}/plugins"
export DOCKER_FINANCE_CLIENT_PLUGINS="${global_client_base_path}/plugins"
fi
if [[ "$global_platform" != "dev-tools" ]]; then
if [[ -z "$DOCKER_FINANCE_CLIENT_FLOW" ]]; then
export DOCKER_FINANCE_CLIENT_FLOW="${HOME}/finance-flow"
export DOCKER_FINANCE_CLIENT_FLOW="${global_client_base_path}/flow"
fi
if [[ -z "$DOCKER_FINANCE_CLIENT_SHARED" ]]; then
export DOCKER_FINANCE_CLIENT_SHARED="${HOME}/share.d"
export DOCKER_FINANCE_CLIENT_SHARED="${global_client_base_path}/share.d"
fi
# hledger-web
@@ -103,23 +106,23 @@ fi
if [[ "$global_platform" != "dev-tools" ]]; then
if [ -z "$DOCKER_FINANCE_CONTAINER_CONF" ]; then
export DOCKER_FINANCE_CONTAINER_CONF="/home/${DOCKER_FINANCE_USER}/.config/docker-finance.d"
export DOCKER_FINANCE_CONTAINER_CONF="/home/${DOCKER_FINANCE_USER}/docker-finance/conf.d"
fi
if [ -z "$DOCKER_FINANCE_CONTAINER_REPO" ]; then
export DOCKER_FINANCE_CONTAINER_REPO="/home/${DOCKER_FINANCE_USER}/docker-finance"
export DOCKER_FINANCE_CONTAINER_REPO="/home/${DOCKER_FINANCE_USER}/docker-finance/repo"
fi
if [[ -z "$DOCKER_FINANCE_CONTAINER_FLOW" ]]; then
export DOCKER_FINANCE_CONTAINER_FLOW="/home/${DOCKER_FINANCE_USER}/finance-flow"
export DOCKER_FINANCE_CONTAINER_FLOW="/home/${DOCKER_FINANCE_USER}/docker-finance/flow"
fi
if [[ -z "$DOCKER_FINANCE_CONTAINER_SHARED" ]]; then
export DOCKER_FINANCE_CONTAINER_SHARED="/home/${DOCKER_FINANCE_USER}/share.d"
export DOCKER_FINANCE_CONTAINER_SHARED="/home/${DOCKER_FINANCE_USER}/docker-finance/share.d"
fi
if [[ -z "$DOCKER_FINANCE_CONTAINER_PLUGINS" ]]; then
export DOCKER_FINANCE_CONTAINER_PLUGINS="/home/${DOCKER_FINANCE_USER}/plugins"
export DOCKER_FINANCE_CONTAINER_PLUGINS="/home/${DOCKER_FINANCE_USER}/docker-finance/plugins"
fi
if [[ -z "$DOCKER_FINANCE_CONTAINER_CMD" ]]; then

View File

@@ -87,7 +87,10 @@ function lib_env::env()
global_tag_dir="client/$(uname -s)-$(uname -m)/${global_platform}/${global_tag}"
declare -g global_tag_dir
local _env_dir="/home/${USER}/.config/docker-finance.d/${global_tag_dir}/env" # NOTE: keep aligned with gen.bash
# Environment location
# NOTE: keep aligned with gen.bash
local _env_dir
_env_dir="$(dirname "$(realpath -s $0)" | rev | cut -d'/' -f3- | rev)/conf.d/${global_tag_dir}/env"
local _env_file="${_env_dir}/${global_conf_filename}"
# shellcheck source=/dev/null
@@ -95,7 +98,7 @@ function lib_env::env()
if [ -z "$DOCKER_FINANCE_CLIENT_CONF" ]; then
# shellcheck source=/dev/null
source "${DOCKER_FINANCE_CLIENT_REPO}/client/docker-finance.d/client/env/gen.bash"
source "${DOCKER_FINANCE_CLIENT_REPO}/client/conf.d/client/env/gen.bash"
fi
[ -z "$DOCKER_FINANCE_CLIENT_CONF" ] \
@@ -163,7 +166,7 @@ function lib_env::__set_client_globals()
lib_utils::print_debug "DOCKER_FINANCE_VERSION=${DOCKER_FINANCE_VERSION}"
# Repository-provided (not user-defined) default environment
global_repo_conf_dir="${DOCKER_FINANCE_CLIENT_REPO}/client/docker-finance.d"
global_repo_conf_dir="${DOCKER_FINANCE_CLIENT_REPO}/client/conf.d"
declare -g global_repo_conf_dir
lib_utils::print_debug "global_repo_conf_dir=${global_repo_conf_dir}"

View File

@@ -735,7 +735,7 @@ function lib_gen::__gen_profile()
local -r _gen_path="${_profiles}/${_profile}/${_subprofile}"
lib_utils::print_debug "_gen_path=${_gen_path}"
local -r _gen_conf_path="${_gen_path}/docker-finance.d"
local -r _gen_conf_path="${_gen_path}/conf.d"
lib_utils::print_debug "_gen_conf_path=${_gen_conf_path}"
lib_gen::__gen_subprofile_flow
@@ -895,7 +895,7 @@ function lib_gen::__gen_subprofile_flow_superscript()
[ ! -f "$global_superscript" ] && lib_utils::die_fatal "Superscript does not exist!"
# Append subprofile source to superscript
local -r _source="source \"\${DOCKER_FINANCE_CONTAINER_FLOW}/profiles/${_profile}/${_subprofile}/docker-finance.d/shell/subscript.bash\""
local -r _source="source \"\${DOCKER_FINANCE_CONTAINER_FLOW}/profiles/${_profile}/${_subprofile}/conf.d/shell/subscript.bash\""
lib_utils::print_custom " \e[32m│ │ │ └─\e[34m Appending subprofile to superscript\e[0m\n"
# If source subprofile does not exist, append

View File

@@ -79,11 +79,11 @@ function lib_finance::finance()
declare -grx global_hledger_cmd=("hledger" "-f" "$global_child_profile_journal")
# Globals (configuration)
declare -grx global_conf_fetch="${global_child_profile_flow}/docker-finance.d/fetch/fetch.yaml"
declare -grx global_conf_hledger="${global_child_profile_flow}/docker-finance.d/hledger/hledger.conf"
declare -grx global_conf_meta="${global_child_profile_flow}/docker-finance.d/meta/meta.csv"
declare -grx global_conf_subscript="${global_child_profile_flow}/docker-finance.d/shell/subscript.bash"
declare -grx global_conf_visidata="${global_child_profile_flow}/docker-finance.d/visidata" # dir for config/addons
declare -grx global_conf_fetch="${global_child_profile_flow}/conf.d/fetch/fetch.yaml"
declare -grx global_conf_hledger="${global_child_profile_flow}/conf.d/hledger/hledger.conf"
declare -grx global_conf_meta="${global_child_profile_flow}/conf.d/meta/meta.csv"
declare -grx global_conf_subscript="${global_child_profile_flow}/conf.d/shell/subscript.bash"
declare -grx global_conf_visidata="${global_child_profile_flow}/conf.d/visidata" # dir for config/addons
# Implementation "libraries" (requires previously set globals)
source "${DOCKER_FINANCE_CONTAINER_REPO}/src/finance/lib/internal/lib_edit.bash" || exit 1