CasperSecurity

Current Path : /usr/bin/
Upload File :
Current File : //usr/bin/byobu-select-profile

#!/bin/sh -e
#
#    byobu-select-profile
#    Copyright (C) 2008 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#             Nick Barcet <nick.barcet@ubuntu.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/>.


# If you change any strings, please generate localization information with:
#	./debian/rules get-po

PKG="byobu"
[ -r "$HOME/.byoburc" ] && . "$HOME/.byoburc"
[ -z "${BYOBU_PREFIX}" ] && export BYOBU_PREFIX="/usr" || export BYOBU_PREFIX
. "${BYOBU_PREFIX}/lib/${PKG}/include/common"

TEXTDOMAIN="$PKG"

COLORS="default_light \
	default_dark \
	white \
	black \
	grey \
	dark_grey \
	light_grey \
	blue \
	light_blue \
	cyan \
	light_cyan \
	green \
	light_green \
	purple \
	light_purple \
	red \
	light_red \
	yellow \
	brown"

# Find a hash utility
for i in md5sum md5 sha512sum sha256sum sha1sum shasum shasum5.12 shasum5.10; do
	if eval $BYOBU_TEST $i >/dev/null 2>&1; then
		HASH="$i"
		break
	fi
done

usage () {
    cat <<EOT
Usage: $0 [OPTION]
    -l,--list                list available profiles
    -b,--background COLOR    set the background color
    -f,--foreground COLOR    set the foreground color
    -h,--hostnmae            set the colors based on a hash of the hostname
    -i,--ip                  set the colors based on a hash of the ip
    -r,--random              set the colors randomly
    --help                   this help
EOT
}

# Initialize variables
FILE="$BYOBU_CONFIG_DIR/color"
PROFILE="$BYOBU_CONFIG_DIR/profile"
[ -r "$PROFILE" ] || ln -sf $BYOBU_PREFIX/share/$PKG/profiles/common "$PROFILE"
selected=-1
color=

listprofiles() {
	# Display list of profiles, one per line
	for x in $COLORS; do
		echo "$x"
	done
}

getletter() {
	count=$(echo "$1" | wc -c)
	if [ "$count" = "2" ]; then
		echo "$1"
		return
	fi
	color="$1"
	case $color in
		default_light) letter="d";;
		default_dark)  letter="D";;
		black)         letter="k";;
		dark_grey)     letter="K";;
		blue)          letter="b";;
		light_blue)    letter="B";;
		cyan)          letter="c";;
		light_cyan)    letter="C";;
		green)         letter="g";;
		light_green)   letter="G";;
		purple)        letter="m";;
		light_purple)  letter="M";;
		red)           letter="r";;
		light_red)     letter="R";;
		grey)          letter="w";;
		light_grey)    letter="W";;
		white)         letter="w";;
		yellow)        letter="Y";;
		brown)         letter="y";;
		*)             letter="d";;
	esac
	echo "$letter"
}

setcolor_screen() {
	which="$1"
	color="$2"
	[ -r $FILE ] && . $FILE
	if [ "$which" = "foreground" ]; then
		FOREGROUND=$(getletter "$color")
	else
		BACKGROUND=$(getletter "$color")
	fi
	[ "$MONOCHROME" = "1" ] || MONOCHROME=0
	printf "FOREGROUND=$FOREGROUND\nBACKGROUND=$BACKGROUND\nMONOCHROME=$MONOCHROME" > $FILE
	touch "$BYOBU_RUN_DIR/reload-required"
	$BYOBU_BACKEND -X at 0 source "$BYOBU_CONFIG_DIR/profile"
}

get_contrast() {
	# See section 2.2: http://www.w3.org/TR/AERT#color-contrast
	local awk="awk"
	if eval $BYOBU_TEST gawk >/dev/null 2>&1; then
		awk="gawk"
	fi
	local hex="$(echo "$1" | sed -e "s/\(..\)\(..\)\(..\)/\1 \2 \3/")"
	local bright=$(echo $hex | $awk --non-decimal-data '{printf "%0.0f",(("0x"$1)*299+("0x"$2)*587+("0x"$3)*114)/1000}')
	if [ $bright -ge 130 ]; then
		_RET="black"
	else
		_RET="white"
	fi
}

setcolor_tmux() {
	if [ "$BYOBU_BACKEND" != "tmux" ]; then
		echo "WARNING: This functionality is only supported in Byobu with the tmux backend" 1>&2
	fi
	dark="$1"
	get_contrast "$dark"
	light="$_RET"
	accent="magenta"
	highlight="red"
	monochrome="0"
	printf "BYOBU_DARK=\"$dark\"\nBYOBU_LIGHT=$light\nBYOBU_ACCENT=$accent\nBYOBU_HIGHLIGHT=$highlight\nMONOCHROME=$MONOCHROME" > "$FILE".tmux
	tmux source "$BYOBU_PREFIX/share/byobu/profiles/tmuxrc"
}

if [ $# -eq 0 ]; then
	usage
else
	while true; do
		case "$1" in
			-b|--background)
				setcolor_screen "background" "$2"
				shift 2
			;;
			-f|--foreground)
				setcolor_screen "foreground" "$2"
				shift 2
			;;
			-h|--hostname)
				color=$(hostname | $HASH | head -c 6)
				setcolor_tmux "$color"
				shift
				break
			;;
			-i|--ip)
				[ -r "$BYOBU_CONFIG_DIR/statusrc" ] && . "$BYOBU_CONFIG_DIR/statusrc"
				. $BYOBU_PREFIX/lib/$PKG/ip_address
				color=$(__ip_address t| $HASH | head -c 6)
				setcolor_tmux "$color"
				shift
				break
			;;
			-r|--random)
				color=$(head -c 10 /dev/urandom | $HASH | head -c 6)
				setcolor_tmux "\#$color"
				shift
				break
			;;
			*)
				usage
				exit 1
			;;
			--)
				shift
				break
			;;
		esac
		[ $# -eq 0 ] && break
	done
fi

exit 0

# vi: syntax=sh ts=4 noexpandtab
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY