v1
#!/bin/sh
firstchar() {
eval $(echo -en "${data}" | sed -e 's/^\(.\)\(.*\)$/char="\1" data="\2"/g')
}
hexdec() {
if [ -z "${1}" ]
then
echo "0"
return
fi
echo $(( 0x${1} + 0 ))
}
flag(){
if [ -z "${1}" ]
then
echo "Usage: flag 'hexcode' [symbol]"
echo "Generates an ANSI color flag using the specified hex codes"
echo "Uses the optional symbol (or .) to draw the flag"
return
fi
data="${1}"
sym="${2}"
[ -z "${sym}" ] && sym=" "
while [ -n "${data}" ]
do
firstchar
ord=$(hexdec "${char}")
bright="0"
[ "$(( ${ord} & 8 ))" -gt 0 ] && bright="1"
fore="3$(( ${ord} & 7 ))"
back="4$(( ${ord} & 7 ))"
printf "\[\033[%s;%s;%s;7m\]%s" "${bright}" "${fore}" "${back}" "${sym}"
done
printf "\[\033[0m\]"
}
[ -f "/etc/flag" ] && flag "$(cat /etc/flag)"
v2.incomplete
#!/bin/sh
firstchar() {
eval $(echo -en "${data}" | sed -e 's/^\(.\)\(.*\)$/char="\1" data="\2"/g')
}
hexdec() {
if [ -z "${1}" ]
then
echo "0"
return
fi
echo $(( 0x${1} + 0 ))
}
flag(){
if [ -z "${1}" ]
then
echo "Usage: flag 'hexcode' [symbol]"
echo "Generates an ANSI color flag using the specified hex codes"
echo "Uses the optional symbol (or .) to draw the flag"
return
fi
data="${1}"
sym="${2}"
[ -z "${sym}" ] && sym=" "
while [ -n "${data}" ]
do
firstchar
ord=$(hexdec "${char}")
bright="0"
[ "$(( ${ord} & 8 ))" -gt 0 ] && bright="1"
fore="3$(( ${ord} & 7 ))"
back="4$(( ${ord} & 7 ))"
printf "\[\033[%s;%s;%s;7m\]%s" "${bright}" "${fore}" "${back}" "${sym}"
done
printf "\[\033[0m\]"
}
[ -f "/etc/flag" ] && flag "$(cat /etc/flag)"
