[master] 8099ffa79 Declare varnishstat key bindings in an include table
Dridi Boukelmoune
dridi.boukelmoune at gmail.com
Mon Dec 9 08:42:08 UTC 2019
commit 8099ffa79ddc9a1964ed7985a9d3fc19fdf05d10
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date: Mon Dec 9 09:23:00 2019 +0100
Declare varnishstat key bindings in an include table
For starters the include table will be used for two things: handle key
presses in interactive mode and generate the "Key bindings" manual
section. The table is so far built to satisfy those two requirements.
It should then be repurposed for a help screen in interactive mode and
possibly refined to accommodate this third use case.
Refs #2990
diff --git a/bin/varnishstat/varnishstat_bindings.h b/bin/varnishstat/varnishstat_bindings.h
new file mode 100644
index 000000000..678958e93
--- /dev/null
+++ b/bin/varnishstat/varnishstat_bindings.h
@@ -0,0 +1,106 @@
+/*-
+ * Copyright (c) 2019 Varnish Software AS
+ * All rights reserved.
+ *
+ * Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef BINDING_KEY
+# define BINDING_KEY(key, name, next)
+#endif
+
+#define BINDING_CTRL(c) ((c) & 0x1f)
+
+BINDING_KEY(KEY_UP, "UP", " or ")
+BINDING_KEY('k', "k",)
+BINDING(UP, "\tNavigate the counter list one line up.")
+
+BINDING_KEY(KEY_DOWN, "DOWN", " or ")
+BINDING_KEY('j', "j",)
+BINDING(DOWN, "\tNavigate the counter list one line down.")
+
+BINDING_KEY(KEY_PPAGE, "PAGEUP", " or ")
+BINDING_KEY('b', "b", " or ")
+BINDING_KEY(BINDING_CTRL('b'), "CTRL-B",)
+BINDING(PAGEUP, "\tNavigate the counter list one page up.")
+
+BINDING_KEY(KEY_NPAGE, "PAGEDOWN", " or ")
+BINDING_KEY(' ', "SPACE", " or ")
+BINDING_KEY(BINDING_CTRL('F'), "CTRL-F",)
+BINDING(PAGEDOWN, "\tNavigate the counter list one page down.")
+
+BINDING_KEY(KEY_HOME, "HOME", " or ")
+BINDING_KEY('g', "g",)
+BINDING(TOP, "\tNavigate the counter list to the top.")
+
+BINDING_KEY(KEY_END, "END", " or ")
+BINDING_KEY('G', "G",)
+BINDING(BOTTOM, "\tNavigate the counter list to the bottom.")
+
+BINDING_KEY('d', "d",)
+BINDING(UNSEEN,
+ "\tToggle between showing and hiding unseen counters. Unseen\n"
+ "\tcounters are those that has been zero for the entire runtime\n"
+ "\tof varnishstat. Defaults to hide unseen counters."
+)
+
+BINDING_KEY('e', "e",)
+BINDING(SCALE, "\tToggle scaling of values.")
+
+BINDING_KEY('v', "v",)
+BINDING(VERBOSE,
+ "\tIncrease verbosity. Defaults to only showing informational\n"
+ "\tcounters."
+)
+
+BINDING_KEY('V', "V",)
+BINDING(QUIET,
+ "\tDecrease verbosity. Defaults to only showing informational\n"
+ "\tcounters."
+)
+
+BINDING_KEY('q', "q",)
+BINDING(QUIT, "\tQuit.")
+
+BINDING_KEY(BINDING_CTRL('t'), "CTRL+T",)
+BINDING(SAMPLE, "\tSample now.")
+
+BINDING_KEY('+', "+",)
+BINDING(ACCEL, "\tIncrease refresh interval.")
+
+BINDING_KEY('-', "-",)
+BINDING(DECEL, "\tDecrease refresh interval.")
+
+#ifdef BINDING_SIG
+BINDING_KEY(BINDING_CTRL('c'), "CTRL+C",)
+BINDING(SIG_INT, "")
+
+BINDING_KEY(BINDING_CTRL('z'), "CTRL+Z",)
+BINDING(SIG_TSTP, "")
+# undef BINDING_SIG
+#endif
+
+#undef BINDING_KEY
+#undef BINDING_CTRL
+#undef BINDING
More information about the varnish-commit
mailing list