#!/bin/sh -e
#
#    logo: determine which logo to use
#    Copyright (C) 2008 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@canonical.com>
#
#    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/>.

PKG="byobu"
color 2>/dev/null || color() { true; }

if [ "$1" = "--detail" ]; then
	MARKUP="false"
	exit 0
else
	MARKUP="true"
fi

print_logo() {
	distro=`echo "$1" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' `
	case "$distro" in
		*ubuntu*)
			#$MARKUP && printf "$(color b k r)%s$(color -)$(color k y)%s$(color -)$(color b k Y)%s$(color -)" "\\" "o" "/" || printf "\\o/"
			$MARKUP && printf "$(color m W)%s$(color -)" " U " || printf "\\o/"
		;;
		*altlinux*)
			logo="alt"
			$MARKUP && printf "$(color Y k)%s$(color -)" "$logo" || printf "$logo"
		;;
	 	*arch*)
			logo=" A "
			$MARKUP && printf "$(color b w b)%s$(color -)" "$logo" || printf "$logo"
		;;
		*centos*)
			logo="****"
			$MARKUP && printf "$(color g w)*$(color -)$(color m w)*$(color -)$(color y w)*$(color -)$(color b w)*$(color -)" || printf "$logo"
		;;
		*debian*)
			logo=" @ "
			$MARKUP && printf "$(color w r)%s$(color -)" "$logo" || printf "$logo"
		;;
		*fedora*)
			logo=" f "
			$MARKUP && printf "$(color b w)%s$(color -)" "$logo" || printf "$logo"
		;;
		*foresight*)
			logo="<@>"
			$MARKUP && printf "$(color b W g)%s$(color -)" "$logo" || printf "$logo"
		;;
		*gentoo*)
			logo=" > "
			$MARKUP && printf "$(color b c w)%s$(color -)" "$logo" || printf "$logo"
		;;
		*mandriva*)
			logo=" (* "
			$MARKUP && printf "$(color b k c) ($(color -)$(color b k y)*$(color -) " || printf "$logo"
		;;
		*redhat*)
			logo=" RH "
			$MARKUP && printf "$(color R k)%s$(color -)" "$logo" || printf "$logo"
		;;
		*rockhopper*)
			logo="palm"
			$MARKUP && printf "$(color k w)%s$(color -)" "$logo" || printf "$logo"
		;;
		*slackware*)
			logo=".S "
			$MARKUP && printf "$(color u B k)%s$(color -)" "$logo" || printf "$logo"
		;;
		*suse*)
			logo="SuSE"
			$MARKUP && printf "$(color W g)%s$(color -)" "$logo" || printf "$logo"
		;;
		*xandros*)
			logo=" X "
			$MARKUP && printf "$(color W r)%s$(color -)" "$logo" || printf "$logo"
		;;
		*)
			logo="[B]"
			$MARKUP && printf "$(color b k W)%s$(color -)" "$logo" || printf " $logo "
		;;
	esac
}

if [ -n "$LOGO" ]; then
	# Allow users to define their own logo in $HOME/.$PKG/status
	printf "%s" "$LOGO" && exit 0 || true
fi

if [ -n "$DISTRO" ]; then
	# Allow manual override of distro in $HOME/.$PKG/status
	print_logo "$DISTRO" && exit 0 || true
fi

if [ -r "/etc/issue" ]; then
	# Otherwise, check /etc/issue
	distro=`grep -m1 "^[A-Za-z]" /etc/issue`
	print_logo "$distro" && exit 0 || true
fi

# This can be a very expensive operation, do it only
# if all other methods fail
if which lsb_release >/dev/null 2>&1; then
	distro=`lsb_release -s -a 2>/dev/null`
	print_logo "$distro" && exit 0 || true
fi

# No idea!
printf "|B|"
