tgroaw - scripts - various script and utils
 (HTM) git clone git://z3bra.org/scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       tgroaw (1692B)
       ---
            1 #!/bin/sh
            2 #
            3 # z3bra - 2014 (c) wtfpl
            4 # groaw - group, organize and arrange windows (or just a bear behind you)
            5 
            6 GROOT=/tmp/groaw
            7 GNUMBER=5
            8 
            9 usage() {
           10         echo "$(basename $0) [-h] [-admtu <gid>]"
           11 }
           12 
           13 add_to_group() {
           14         :> $GROOT/$2/$1
           15         show_group $2
           16 }
           17 
           18 remove_from_group() {
           19     test "$2" = "all" \
           20         && rm -f $GROOT/*/$1 \
           21         || rm -f $GROOT/$2/$1
           22 }
           23 
           24 find_group() {
           25         file=$(find $GROOT -name "$1")
           26         test -n "$file" && basename $(dirname $file)
           27 }
           28 
           29 show_group() {
           30         for file in $GROOT/$1/*; do
           31                 wid=$(basename $file)
           32                 mapw -m $wid
           33         done
           34 }
           35 
           36 hide_group() {
           37         for file in $GROOT/$1/*; do
           38                 wid=$(basename $file)
           39                 mapw -u $wid
           40         done
           41 }
           42 
           43 togg_group() {
           44     wid=$(ls -1 $GROOT/$1 | sed 1q)
           45 
           46     test -z "$wid" && return
           47     wattr m $wid \
           48         && hide_group $1 \
           49         || show_group $1
           50 }
           51 
           52 check_groups_sanity() {
           53         for gid in $(seq 1 $GNUMBER ); do
           54                 test -d $GROOT/$gid || mkdir -p $GROOT/$gid
           55         done
           56 
           57         for file in $(find $GROOT -type f); do
           58                 wid=$(basename $file)
           59                 wattr $wid || rm -f $file
           60         done
           61 }
           62 
           63 check_groups_sanity
           64 
           65 while getopts ":a:wd:ghm:t:u:" opt; do
           66         case $opt in
           67                 a) add_to_group `pfw` $OPTARG ;;
           68                 d) remove_from_group `pfw` $OPTARG ;;
           69                 g) find_group `pfw` ;;
           70                 m) show_group $OPTARG ;;
           71                 t) togg_group $OPTARG ;;
           72                 u) hide_group $OPTARG ;;
           73                 *) usage && exit 0;;
           74         esac
           75 done
           76 
           77 # in case no argument is given, display the whole tree
           78 test $# -eq 0 && tree --noreport $GROOT