[elbe-devel] [PATCH 2/2] elbepack: control: introduce del_all_projects
Thomas Weißschuh
thomas.weissschuh at linutronix.de
Mon May 26 09:48:05 CEST 2025
To clean the initvm it is useful to delete all projects at once.
So far this required custom scripting by the user.
Introduce a new command to delete all projects at once.
Suggested-by: INgo Rah <ingo.rah at linutronix.de>
Signed-off-by: Thomas Weißschuh <thomas.weissschuh at linutronix.de>
---
bash-completion | 2 +-
docs/elbe-control.rst | 4 ++++
elbepack/commands/control.py | 7 +++++++
newsfragments/+del_all_projects.feature.rst | 1 +
4 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/bash-completion b/bash-completion
index 3b44a93cb1dd020ec67fd54e3b87322b7c967425..1f4675e1f103808fcc53e08ef8f186677c249620 100644
--- a/bash-completion
+++ b/bash-completion
@@ -107,7 +107,7 @@ _cmd_args_completion_elbe()
file_arg=true
disable_space=true
cmd_opt=$(_elbe_subcmd_with_opt 'rm_log list_projects create_project reset_project \
- del_project set_xml build build_sysroot build_sdk build_cdroms get_file \
+ del_project del_all_projects set_xml build build_sysroot build_sdk build_cdroms get_file \
build_chroot_tarball dump_file get_files wait_busy set_cdrom set_orig \
set_pdebuild build_pbuilder update_pbuilder')
;;
diff --git a/docs/elbe-control.rst b/docs/elbe-control.rst
index 36a8e75eb55887a05887628d4b8d650ef27673fe..f4d391654624ab249844918f56ccf3bba64b0cfa 100644
--- a/docs/elbe-control.rst
+++ b/docs/elbe-control.rst
@@ -26,6 +26,7 @@ SYNOPSIS
elbe control [options] wait_busy <build-dir>
elbe control [options] set_xml <build-dir> <xmlfile>
elbe control [options] del_project <build-dir>
+ elbe control [options] del_all_projects
elbe control [options] build_pbuilder <build-dir>
elbe control [options] build <build-dir>
elbe control [options] rm_log <build-dir>
@@ -160,6 +161,9 @@ a ./debian folder with a valid debianization.
*del_project* <build-dir>
Delete project in <build-dir>
+*del_all_projects*
+ Delete all projects
+
*build_pbuilder* <build-dir>
Build a pbuilder environment for the given project <build-dir>.
diff --git a/elbepack/commands/control.py b/elbepack/commands/control.py
index 3d3f647ed049f01afc539426f2117267e7027a65..2fc3ea1722ce132d8f7aae86726058e59080e5a3 100644
--- a/elbepack/commands/control.py
+++ b/elbepack/commands/control.py
@@ -50,6 +50,12 @@ def _delete_project(client, args):
client.service.del_project(args.project_dir)
+def _delete_all_projects(client, args):
+ for project in client.list_projects():
+ print(f'Deleting {project.builddir} {project.name}')
+ client.service.del_project(project.builddir)
+
+
@_add_project_dir_argument
@add_argument('xml')
def _set_xml(client, args):
@@ -186,6 +192,7 @@ _client_actions = {
'create_project': _create_project,
'reset_project': _reset_project,
'del_project': _delete_project,
+ 'del_all_projects': _delete_all_projects,
'set_xml': _set_xml,
'build': _build,
'build_sysroot': _build_sysroot,
diff --git a/newsfragments/+del_all_projects.feature.rst b/newsfragments/+del_all_projects.feature.rst
new file mode 100644
index 0000000000000000000000000000000000000000..412f10fb9532e85bf6cc296379e85dbc6a68bd88
--- /dev/null
+++ b/newsfragments/+del_all_projects.feature.rst
@@ -0,0 +1 @@
+Introduce `elbe control del_all_projects` to delete all projects at once.
--
2.49.0
More information about the elbe-devel
mailing list