Jan Lindemann
3e897f4df8
lib.Distro, ExecContext: Add classes, refactor lib.distro
...
The code below lib.distro, as left behind by the previous commit, is
geared towards being directly used as a command-line API. This commit
introduces the abstract base class Distro, a proxy for
distribution-specific interactions. The proxy abstracts distro
specifics into an API with proper method prototypes, not
argparse.Namespace contents, and can thus be more easily driven by
arbitrary code.
The Distro class is initialized with a member variable of type
ExecContext, another new class introduced by this commit. It is
designed to abstract the communication channel to the distribution
instance. Currently only one specialization exists, Local, which
interacts with the distribution and root file system it is running
in, but is planned to be subclassed to support interaction via SSH,
serial, chroot, or chains thereof.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-03-06 14:56:46 +01:00
..
backup.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
bin.mk
bin, make, scripts: Re-add files necessary for packaging jw-build
2025-11-14 11:22:50 +01:00
cache.mk
make: Install cache-projects.mk
2026-02-01 09:50:52 +01:00
cleandirs.mk
make: Re-add files necessary for building jw-python
2025-11-13 17:27:14 +01:00
conf.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
cpp-extra-targets.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
cpp.mk
cpp.mk, swig.mk: Re-add files necessary for building auth
2025-11-14 16:17:21 +01:00
debugger.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
defs-cpp.mk
Everywhere: Replace "JW_BUILD" by "JW_PKG"
2025-11-28 13:35:56 +01:00
defs-dev.mk
defs-[dev|dist].mk: Add DATA_DIR, JSON_DIR
2025-12-03 20:48:32 +01:00
defs-dirs.mk
defs-dirs.mk: Add support for EXTRA_SUBDIR_TARGETS
2020-04-10 12:03:42 +00:00
defs-dist.mk
defs-dist.mk: HTMLDIROWNER wwwrun -> root
2026-01-13 15:41:46 +01:00
defs.mk
defs.mk: Move PKG_FORMAT definition into platform.mk
2026-03-02 12:55:36 +00:00
depend.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
dev-utils.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
dirs.mk
Fix: Failing $(PREREQ_DIRS_DONE) doesn\'t have sub-subdirectories rebuilt
2019-07-01 17:59:09 +00:00
doc-rules.mk
Everywhere: Purge spaces in text files
2019-03-06 12:38:20 +00:00
doc.mk
Everywhere: Rename MODDIR -> JWBDIR
2019-06-29 21:34:18 +00:00
dummy.mk
std-targets.mk: Add file
2026-01-26 17:17:23 +01:00
exe.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
gettext.mk
gettext.mk: Re-add files necessary for building bootstrap
2025-11-14 16:22:40 +01:00
git-cvs-bridge.mk
git-cvs-bridge.mk: Add support for GIT_CVSIMPORT_EXTRA_ARGS
2019-01-08 11:03:36 +00:00
git-submod.mk
Everywhere: Rename package "jw-build" to "jw-pkg"
2025-11-28 13:35:56 +01:00
htdocs.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
include.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
install-files.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
js.mk
js.mk: Don't minify without minifier
2025-12-11 17:23:22 +01:00
ldlibpath.mk
ldlibpath.mk: Replace ifndef by ifeq ($(origin, ...))
2026-01-28 15:24:13 +01:00
lib.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
list-files.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
lo.mk
lo.mk: Fix warning that targets were not remade
2026-02-10 09:57:59 +01:00
make.mk
platform.mk: Add HOST_DISTRO_INFO
2026-03-03 05:32:47 +01:00
Makefile
make: Install cache-projects.mk
2026-02-01 09:50:52 +01:00
path-rules.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
platform.mk
platform.mk: Add HOST_DISTRO_INFO
2026-03-03 05:32:47 +01:00
profile.mk
make: Re-add files necessary for building jw-python
2025-11-13 17:27:14 +01:00
profiler-defs.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
profiler-rules-run.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
profiler.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
proj.mk
proj.mk: Set JANWARE_URL_DOC_PROJECT to jw-build cheat sheet
2020-02-24 12:19:05 +00:00
project.conf
project.conf: Remove nonsensical maintainer scripts
2026-03-06 12:06:28 +01:00
projects+project.mk
projects+project.mk: Add file
2026-02-18 01:20:26 +01:00
projects-dir-include.mk
projects+project.mk: Add file
2026-02-18 01:20:26 +01:00
projects-dir-minimal.mk
projects-dir-minimal.mk: Add target init
2026-02-18 01:20:26 +01:00
projects-dir.mk
lib.Distro, ExecContext: Add classes, refactor lib.distro
2026-03-06 14:56:46 +01:00
projects.mk
projects.mk -> platform.mk: Move definitions up
2026-03-02 12:55:36 +00:00
py-defs.mk
py-defs.mk: Remove PY_PREREQ_BUILD[_DIRS]
2026-01-26 17:17:23 +01:00
py-mod.mk
py-defs.mk, py-mod.mk: Support PY_UPDATE_INIT_PY
2025-11-16 18:42:58 +01:00
py-mods.mk
make: Re-add files necessary for building jw-python
2025-11-13 17:27:14 +01:00
py-rules.mk
make: Re-add files necessary for building jw-python
2025-11-13 17:27:14 +01:00
py-run.mk
py-run.mk, python-tools.sh: Re-add files necessary for jw-client-devops-web
2025-11-14 17:15:24 +01:00
py-version.mk
projects.mk, py-defs.mk, py-version.mk: Add py-version.mk
2025-02-22 09:04:17 +00:00
rpmdist.mk
topdir.mk: git-get-% -> current-branch
2026-02-21 15:54:53 +01:00
rules.mk
defs.mk: Define Q and use it in *.mk
2026-01-26 17:58:23 +01:00
run.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
scripts-targets.mk
make, scripts: Flip some more switches from pathon 2 to 3 (untested!)
2019-06-02 12:28:13 +00:00
scripts.mk
Everywhere: Rename MODDIR -> JWBDIR
2019-06-29 21:34:18 +00:00
so.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
srcdist.mk
Everywhere: Rename MODDIR -> JWBDIR
2019-06-29 21:34:18 +00:00
std-targets.mk
std-targets.mk: Add file
2026-01-26 17:17:23 +01:00
std-tools.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
subdirs.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
svg-to-pixmap.mk
Rename svg.mk to svg-to-pixmap.mk
2025-12-21 20:24:56 +01:00
swig.mk
cpp.mk, swig.mk: Re-add files necessary for building auth
2025-11-14 16:17:21 +01:00
tag-defs.mk
bin, make, scripts: Re-add files necessary for packaging jw-build
2025-11-14 11:22:50 +01:00
tag-rules.mk
bin, make, scripts: Re-add files necessary for packaging jw-build
2025-11-14 11:22:50 +01:00
tailwind.mk
tailwind.mk: Add file
2025-12-06 15:12:35 +01:00
targets-tools.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
test-exe.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
text.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
tmpl.mk
tmpl.mk: Re-add because it's useful
2025-12-23 11:07:37 +01:00
tools.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00
topdir.mk
lib.Distro, ExecContext: Add classes, refactor lib.distro
2026-03-06 14:56:46 +01:00
upload-defs-rpm.mk
bin, make, scripts: Re-add files necessary for packaging jw-build
2025-11-14 11:22:50 +01:00
upload-defs.mk
upload-defs.mk: Add support for UPLOAD_PROTOCOL
2023-12-18 13:00:43 +00:00
upload-rules.mk
bin, make, scripts: Re-add files necessary for packaging jw-build
2025-11-14 11:22:50 +01:00
vim.mk
vim.mk: Re-add files necessary for building jw-ws
2025-11-14 17:18:31 +01:00
yapp.mk
make, scripts: Re-add files necessary for building ytools
2025-11-14 15:59:49 +01:00