]> git.lizzy.rs Git - bspwm.git/blob - tests/prelude
5c8874a6ae5384561fd8037f203c787e7170008c
[bspwm.git] / tests / prelude
1 #! /bin/sh
2
3 fail() {
4         echo "$@" 1>&2
5         exit 1
6 }
7
8 clients_count() {
9         bspc wm -d | jshon -e clientsCount
10 }
11
12 window() {
13     local cmd=$1
14     local iter=${2:-1}
15     local delta=${3:-1}
16         local interval=${4:-0.05}
17         local max_tries=${5:-40}
18     while [ $iter -gt 0 ] ; do
19                 local cur=$(clients_count)
20                 local trg
21                 local tries=0
22                 case "$cmd" in
23                         add)
24                                 trg=$((cur + delta))
25                                 ./test_window &
26                                 ;;
27                         remove)
28                                 trg=$((cur - delta))
29                                 bspc node -c
30                                 ;;
31                         *)
32                                 fail "window: unknown command: ${cmd}."
33                                 ;;
34                 esac
35                 while [ $cur -ne $trg ] ; do
36                         cur=$(clients_count)
37                         sleep $interval
38                         tries=$((tries + 1))
39                         [ $tries -ge $max_tries ] && break
40                 done
41                 iter=$((iter - 1))
42         done
43 }