MINOR: config: add HAPROXY_BRANCH environment variable

This patch adds support from HAPROXY_BRANCH environment variable.
It can be useful is some resources are loaded from different
locations when migrating from one version to another.

Signed-off-by: Sébastien Gross <sgross@haproxy.com>
diff --git a/doc/configuration.txt b/doc/configuration.txt
index beae7db..fbe598e 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -782,6 +782,11 @@
   mode this is the version which was used to start the master, even after
   updating the binary and reloading.
 
+* HAPROXY_BRANCH: contains the HAProxy branch version (such as "2.8"). It does
+  not contain the full version number. It can be useful in case of migration
+  if resources (such as maps or certificates) are in a path containing the
+  branch number.
+
 In addition, some pseudo-variables are internally resolved and may be used as
 regular variables. Pseudo-variables always start with a dot ('.'), and are the
 only ones where the dot is permitted. The current list of pseudo-variables is:
diff --git a/src/haproxy.c b/src/haproxy.c
index a1399f9..eb49080 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2090,6 +2090,7 @@
 		setenv("HAPROXY_HTTP_LOG_FMT", default_http_log_format, 1);
 		setenv("HAPROXY_HTTPS_LOG_FMT", default_https_log_format, 1);
 		setenv("HAPROXY_TCP_LOG_FMT", default_tcp_log_format, 1);
+		setenv("HAPROXY_BRANCH", PRODUCT_BRANCH, 1);
 		list_for_each_entry(wl, &cfg_cfgfiles, list) {
 			int ret;
 
@@ -2116,6 +2117,7 @@
 			}
 		}
 		/* remove temporary environment variables. */
+		unsetenv("HAPROXY_BRANCH");
 		unsetenv("HAPROXY_HTTP_LOG_FMT");
 		unsetenv("HAPROXY_HTTPS_LOG_FMT");
 		unsetenv("HAPROXY_TCP_LOG_FMT");