MINOR: proxy: create new function cli_find_frontend() to find a frontend

Several CLI commands require a frontend, so let's have a function to
look this one up and prepare the appropriate error message and the
appctx's state in case of failure.
diff --git a/include/proto/proxy.h b/include/proto/proxy.h
index 2b64966..a0fa454 100644
--- a/include/proto/proxy.h
+++ b/include/proto/proxy.h
@@ -25,6 +25,7 @@
 #include <common/config.h>
 #include <common/ticks.h>
 #include <common/time.h>
+#include <types/applet.h>
 #include <types/global.h>
 #include <types/proxy.h>
 #include <types/listener.h>
@@ -56,6 +57,7 @@
 void init_new_proxy(struct proxy *p);
 int get_backend_server(const char *bk_name, const char *sv_name,
 		       struct proxy **bk, struct server **sv);
+struct proxy *cli_find_frontend(struct appctx *appctx, const char *arg);
 
 /*
  * This function returns a string containing the type of the proxy in a format
diff --git a/src/proxy.c b/src/proxy.c
index dc6d3e1..86b8384 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -29,6 +29,7 @@
 #include <ebistree.h>
 
 #include <types/capture.h>
+#include <types/cli.h>
 #include <types/global.h>
 #include <types/obj_type.h>
 #include <types/peers.h>
@@ -1216,6 +1217,29 @@
 	{ 0, NULL, NULL },
 }};
 
+/* Expects to find a frontend named <arg> and returns it, otherwise displays various
+ * adequate error messages and returns NULL. This function is designed to be used by
+ * functions requiring a frontend on the CLI.
+ */
+struct proxy *cli_find_frontend(struct appctx *appctx, const char *arg)
+{
+	struct proxy *px;
+
+	if (!*arg) {
+		appctx->ctx.cli.msg = "A frontend name is expected.\n";
+		appctx->st0 = STAT_CLI_PRINT;
+		return NULL;
+	}
+
+	px = proxy_fe_by_name(arg);
+	if (!px) {
+		appctx->ctx.cli.msg = "No such frontend.\n";
+		appctx->st0 = STAT_CLI_PRINT;
+		return NULL;
+	}
+	return px;
+}
+
 __attribute__((constructor))
 static void __proxy_module_init(void)
 {