#!/bin/bash export ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" button=$1 debug(){ debug=$ROOT/debug # todo: # this keeps the log file at 30 lines but breaks the pipe when doing "tail -F debug" tail -n 30 $debug > debug.tmp && mv debug.tmp $debug echo $1 echo $1>>$debug } active=$(bash $ROOT/get_active_window.sh) debug "" debug "$(date +%s)" debug "active: $active" debug "button: $button" . $ROOT/find_or_open.sh . $ROOT/apps/default_commands.sh if [ -f "$ROOT/apps/${active%%_*}.sh" ]; then . "$ROOT/apps/${active%%_*}.sh" debug "$active sourced" else debug "no $active source found" fi ### find and run $1 if [[ $(type -t $active) == function ]]; then debug "found $active methods" $active else debug "no $button method found in $active" fi if [[ $(type -t $button) == function ]]; then debug "found $button" $1 else debug "program specific method not found calling all $button" all $1 fi