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