aboutsummaryrefslogtreecommitdiff
path: root/bdep/sync.cli
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-04-28 16:41:02 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-04-28 16:41:02 +0200
commitb2d5f82512d0118a0668ce02f1a0730c3dcd50b8 (patch)
treeb470b17e276a67164212065f164823aa30b5165f /bdep/sync.cli
parent77a9dc17b487123dc1aaf5c41b539d9abfe32dee (diff)
Implement auto-synchronization via build system hook
Diffstat (limited to 'bdep/sync.cli')
-rw-r--r--bdep/sync.cli23
1 files changed, 23 insertions, 0 deletions
diff --git a/bdep/sync.cli b/bdep/sync.cli
index 4fd5cb8..61d15cb 100644
--- a/bdep/sync.cli
+++ b/bdep/sync.cli
@@ -198,5 +198,28 @@ namespace bdep
{
"Don't prompt for confirmation when up/down-grading dependencies."
}
+
+ bool --implicit
+ {
+ "Perform implicit synchronization. This mode is normally used by other
+ tools (for example, a build system hook) to ensure packages and
+ configurations are synchronized. To improve performance, especially for
+ the \"everything is already synchronized\" case, \cb{sync} executed in
+ this mode assumes that no configuration flags (see \l{bdep-config(1)})
+ have changed since the last explicit synchronization.
+
+ To avoid recursive re-synchronization, the \cb{sync} command maintains
+ the \cb{BDEP_SYNCED_CONFIGS} environment variable. It contains a
+ space-separated, \cb{\"}-quoted list of configuration paths that have
+ been or are being synchronized by the current \cb{bdep} invocation
+ chain. The \cb{sync} command in the implicit mode also examines this
+ variable and silently ignores synchronization requests that have been
+ or are already being performed."
+ }
+
+ // The build system hook protocol version. Internal, undocumented, and
+ // implies --implicit.
+ //
+ uint16_t --hook = 0;
};
}