#!/usr/bin/env bash

# Exit on error. Append "|| true" if you expect an error.
set -o errexit
# Exit on error inside any functions or subshells.
set -o errtrace
# Do not allow use of undefined vars. Use ${VAR:-} to use an undefined VAR
set -o nounset
# Catch the error in case mysqldump fails (but gzip succeeds) in `mysqldump |gzip`
set -o pipefail

function command_exists() {
  type "$1" &> /dev/null
}

function list_groups() {
  groups="$("${TOOL}" list-groups)"
  if ! echo "${groups}" | grep -q '^Ɗ$'; then
    echo 'Ɗ'
  fi
  echo "${groups}"
}

DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
TOOL="${DIR}/i3-workspace-groups"
command_exists "${TOOL}" || TOOL="i3-workspace-groups"
if selected_group="$(list_groups |
  sed -r 's|Ɗ|Ɗ <span alpha="50%">(default group)</span>|g' |
  rofi -dmenu -p 'Switch to workspace group' -lines 10 -width 30 \
    -markup-rows | awk '{print $1}')"; then
  "${TOOL}" switch-active-group "${selected_group}" "$@"
else
  exit $?
fi
