From 5a4d4a06a287985fbf5b458056881d3d0a0c71aa Mon Sep 17 00:00:00 2001
From: xero <x@xero.nu>
Date: Sun, 22 Jan 2017 23:22:55 -0500
Subject: add wmutils setup

---
 wmutils/bin/group | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)
 create mode 100755 wmutils/bin/group

(limited to 'wmutils/bin/group')

diff --git a/wmutils/bin/group b/wmutils/bin/group
new file mode 100755
index 0000000..0d105dc
--- /dev/null
+++ b/wmutils/bin/group
@@ -0,0 +1,105 @@
+#!/bin/sh
+#
+# wmg by:
+#
+# ▓█████▄  ▄████▄   ▄▄▄     ▄▄▄█████▓
+# ▒██▀ ██▌▒██▀ ▀█  ▒████▄   ▓  ██▒ ▓▒
+# ░██   █▌▒▓█    ▄ ▒██  ▀█▄ ▒ ▓██░ ▒░
+# ░▓█▄   ▌▒▓▓▄ ▄██▒░██▄▄▄▄██░ ▓██▓ ░ 
+# ░▒████▓ ▒ ▓███▀ ░ ▓█   ▓██▒ ▒██▒ ░ 
+#  ▒▒▓  ▒ ░ ░▒ ▒  ░ ▒▒   ▓▒█░ ▒ ░░   
+#  ░ ▒  ▒   ░  ▒     ▒   ▒▒ ░   ░    
+#  ░ ░  ░ ░          ░   ▒    ░      
+#    ░    ░ ░            ░  ░        
+#  ░      ░                          
+
+GRP_DIR="/tmp/wmutils/groups"
+USE_FIFO=yes
+
+setup() {
+  [ -d "$GRP_DIR" ] || mkdir -p $GRP_DIR
+  if [ -n "$USE_FIFO" ]
+  then
+    [ -p "$GRP_DIR/.fifo" ] || mkfifo $GRP_DIR/.fifo
+  fi
+}
+
+sed_apply() {
+  TMP=`mktemp /tmp/grp.XXXXXX`
+  sed $1 < $2 > $TMP && mv $TMP $2 || rm $TMP
+  [ -n "$DEBUG" ] && echo "sed $1 < $2 > $TMP && mv $TMP $2 || rm $TMP"
+}
+
+pop() {
+  sed_apply "/$1/d" $2
+}
+
+push() {
+  echo $1 >> $GRP_DIR/$2
+}
+
+view() {
+  while read WID
+  do mapw -m $WID
+  done < $GRP_DIR/$1
+}
+
+hide() {
+  while read WID
+  do mapw -u $WID
+  done < $GRP_DIR/$1
+}
+
+pop_from_all() {
+  for GRP in $GRP_DIR/*
+  do
+    pop $1 $GRP
+  done
+}
+
+case $1 in
+view)
+  setup
+  if [ -f "$GRP_DIR/$2" ]
+  then
+    for GRP in $GRP_DIR/*
+    do hide `basename $GRP`
+    done
+    view $2
+  else
+    echo "group does not exist"
+    exit 1
+  fi
+
+  # customize your fifo printing here
+  if [ -n "$USE_FIFO" ]
+  then
+    for GRP in $GRP_DIR/*
+    do
+      GRP_BASE="`basename $GRP`"
+      GRP_NUM=`wc -l < $GRP | tr -cd '[:digit:]'`
+      [ $GRP_NUM -ne 0 ] && printf '^fg(#888)' || printf '^fg(#555)'
+      [ $GRP_BASE -eq $2 ] && printf '^fg(orange)<'
+      printf "$GRP_BASE^fg()"
+      [ $GRP_BASE -eq $2 ] && printf '>^fg()'
+    done > $GRP_DIR/.fifo
+    echo >> $GRP_DIR/.fifo
+  fi
+
+  ;;
+hide)
+  setup
+  hide $2
+  ;;
+add)
+  setup
+  pop_from_all $2
+  push $2 $3
+  hide $3
+  view $3
+  ;;
+remove)
+  setup
+  pop_from_all $2
+  ;;
+esac
-- 
cgit v1.2.1