From 730277b4ab35ecb7179943fb54eef3934480db8c Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 7 Dec 2020 13:15:07 +0300 Subject: Add --immediate|-i and --recursive|-r options to update and clean commands --- bdep/clean.cli | 26 +++++++++++++++++++++----- bdep/clean.hxx | 2 ++ bdep/update.cli | 20 ++++++++++++++++++-- bdep/update.hxx | 2 ++ 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/bdep/clean.cli b/bdep/clean.cli index 16e694e..141d20a 100644 --- a/bdep/clean.cli +++ b/bdep/clean.cli @@ -27,11 +27,17 @@ namespace bdep \h|DESCRIPTION| The \cb{clean} command cleans the project packages in one or more build - configurations. Underneath it executes the \l{bpkg-pkg-clean(1)} command - which itself is not much more than the build system \cb{clean} operation - (see \l{b(1)} for details). As a result, the main utility of this command - is the ability to refer to build configurations by names and to project - packages implicitly via the current working directory. + configurations. Additionally, immediate or all dependencies of the + project packages can be cleaned by specifying the + \c{\b{--immediate}|\b{-i}} or \c{\b{--recursive}|\b{-r}} options, + respectively. + + Underneath \cb{clean} executes the \l{bpkg-pkg-clean(1)} command which + itself is not much more than the build system \cb{clean} operation (see + \l{b(1)} for details). As a result, the main utility of this command is + the ability to refer to build configurations by names and to project + packages implicitly via the current working directory as well as to + clean dependencies. If no project or package directory is specified, then the current working directory is assumed. If no configuration is specified, then the default @@ -44,6 +50,16 @@ namespace bdep class cmd_clean_options: project_options { "\h|CLEAN OPTIONS|" + + bool --immediate|-i + { + "Also clean immediate dependencies." + } + + bool --recursive|-r + { + "Also clean all dependencies, recursively." + } }; " diff --git a/bdep/clean.hxx b/bdep/clean.hxx index 23639c4..d0960d6 100644 --- a/bdep/clean.hxx +++ b/bdep/clean.hxx @@ -25,6 +25,8 @@ namespace bdep : strings ()), "clean", "-d", c->path, + (o.immediate () ? "--immediate" : + o.recursive () ? "--recursive" : nullptr), cfg_vars, pkgs); } diff --git a/bdep/update.cli b/bdep/update.cli index 6b7cdf3..4a66298 100644 --- a/bdep/update.cli +++ b/bdep/update.cli @@ -27,11 +27,17 @@ namespace bdep \h|DESCRIPTION| The \cb{update} command updates the project packages in one or more build - configurations. Underneath it executes the \l{bpkg-pkg-update(1)} command + configurations. Additionally, immediate or all dependencies of the + project packages can be updated by specifying the + \c{\b{--immediate}|\b{-i}} or \c{\b{--recursive}|\b{-r}} options, + respectively. + + Underneath \cb{update} executes the \l{bpkg-pkg-update(1)} command which itself is not much more than the build system \cb{update} operation (see \l{b(1)} for details). As a result, the main utility of this command is the ability to refer to build configurations by names and to project - packages implicitly via the current working directory. + packages implicitly via the current working directory as well as to + update dependencies. If no project or package directory is specified, then the current working directory is assumed. If no configuration is specified, then the default @@ -44,6 +50,16 @@ namespace bdep class cmd_update_options: project_options { "\h|UPDATE OPTIONS|" + + bool --immediate|-i + { + "Also update immediate dependencies." + } + + bool --recursive|-r + { + "Also update all dependencies, recursively." + } }; " diff --git a/bdep/update.hxx b/bdep/update.hxx index e038c36..e93ec34 100644 --- a/bdep/update.hxx +++ b/bdep/update.hxx @@ -25,6 +25,8 @@ namespace bdep : strings ()), "update", "-d", c->path, + (o.immediate () ? "--immediate" : + o.recursive () ? "--recursive" : nullptr), cfg_vars, pkgs); } -- cgit v1.1