#!/bin/sh
set -e

argv0="$0"

error(){
        printf "%s: %s\n" "$argv0" "$1" 1>&2
        exit $2
}

usage(){
        set +x
        printf "\
Usage:
        %s [window manager] [action]\n" "$argv0" 1>&2
        exit 64 # sysexits(3) EX_USAGE
}

[ -n "$2" ] \
	|| usage

# sysexits(3) EX_OSERR
[ -n "$HOME" ] \
	|| error "No \$HOME environment variable set. This is very bad." 71 

if [ -z "$DISPLAYM_CONFIG" ]; then
	[ -z "$XDG_CONFIG_HOME" ] \
		&& DISPLAYM_CONFIG="$HOME/.displaym" \
		|| DISPLAYM_CONFIG="$XDG_CONFIG_HOME/displaym"
fi

export DISPLAYM_CONFIG

[ -e "$DISPLAYM_CONFIG" ] && ! [ -d "$DISPLAYM_CONFIG" ] \
        && bak "$DISPLAYM_CONFIG" \
	|| true

[ -d "$DISPLAYM_CONFIG" ] \
        || mkdir -p "$DISPLAYM_CONFIG"

WM="$1"; export WM
SCRIPT="$2"

# with exported DISPLAYM_CONFIG and WM
sh <"$DISPLAYM_CONFIG/$WM/$SCRIPT.sh"
