#!/bin/bash ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" export ROOT="$ROOT" 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