summaryrefslogtreecommitdiffstats
path: root/lib/remote/report.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/remote/report.sh')
-rw-r--r--lib/remote/report.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/remote/report.sh b/lib/remote/report.sh
new file mode 100644
index 0000000..e6766a4
--- /dev/null
+++ b/lib/remote/report.sh
@@ -0,0 +1,51 @@
+function simple_report {
+ local generator="$1"
+ local filter="${2:-cat}"
+ {
+ eval "$generator 12>/dev/fd/12 | $filter"
+ report=$(cat<&12)
+ } 12<<EOF
+EOF
+ wait
+}
+
+
+function short_report {
+ local generator="$1"
+ local filter="${2:-print_table | decorate_table}"
+
+ configure_palete "$palete"
+ simple_report "$generator" "$filter"
+ finish
+}
+
+
+function standart_report {
+ local generator="$1"
+ local filter="${2:-print_table | decorate_table}"
+
+ configure_palete "$palete"
+ simple_report "$generator" "$filter"
+
+ print "$report"
+ echo
+ finish
+}
+
+
+function report {
+ # Eval breaks output for some reason
+ case $report in
+ simple_report)
+ simple_report "$@"
+ ;;
+ short_report)
+ short_report "$@"
+ ;;
+ standart_report)
+ standart_report "$@"
+ ;;
+ default)
+ echo "Report is not implemented"
+ esac
+}