#!/bin/sh
#
#    common: common stuff sourced by all scripts
#
#    Copyright (C) 2011-2014 Dustin Kirkland
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

if [ -z "${BYOBU_INCLUDED_LIBS}" ]; then
	# Needed to set up $BYOBU_CONFIG_DIR
	. "${BYOBU_PREFIX}/lib/${PKG}/include/dirs"

	# Find command/type/which
	for BYOBU_TEST in "command -v" "type" "which"; do
		eval $BYOBU_TEST ls >/dev/null 2>&1 && break || true
	done

	# If the backend is already set (eg. running `byobu-tmux`), do nothing.
	if [ -z "${BYOBU_BACKEND}" ]; then
		[ -r "/etc/$PKG/backend" ] && . "/etc/$PKG/backend"
		[ -r "$BYOBU_CONFIG_DIR/backend" ] && . "$BYOBU_CONFIG_DIR/backend"
		# Just in case there's no config file at all
		if [ -z "${BYOBU_BACKEND}" ]; then
			# New byobu configuration, default to tmux
			if eval $BYOBU_TEST tmux >/dev/null; then
				BYOBU_BACKEND="tmux"
			elif eval $BYOBU_TEST screen >/dev/null; then
				BYOBU_BACKEND="screen"
			else
				printf "%s\n" "ERROR: $PKG won't work without tmux or screen installed" 1>&2
			fi
		fi
  	fi

	# Creating backend cache
	[ -d "$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND" ] || mkdir -p "$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND"

	. "${BYOBU_PREFIX}/lib/${PKG}/include/shutil"
	. "${BYOBU_PREFIX}/lib/${PKG}/include/constants"
	get_distro || true
	export BYOBU_DISTRO="$_RET"
	BYOBU_INCLUDED_LIBS=1
fi

case "$1" in
	-v|--version) [ "$(basename $0)" != "byobu" ] && exec byobu -v ;;
	-h|--help) exec man $(basename $0) ;;
esac
# Workaround: ending with esac breaks stdout, so add a no-op
true
