#!/bin/bash
#########################################################
# 							#
# This is BashStyle-NG 7.8				#
#							#
# Licensed under GNU GENERAL PUBLIC LICENSE v3    	#
#							#
# Copyright 2007 - 2009 Christopher Bratusek		#
#							#
#########################################################

white=$(bs-ng-echo $white)
orange=$(bs-ng-echo $orange)
iceblue=$(bs-ng-echo $iceblue)
green=$(bs-ng-echo $green)

_help ()
{
	echo -e "\n${white}Usage:\n"
	echo -e "\n${orange}showmem ${white}|${green} --used ${iceblue}[display used memory in mb]\
	\n${orange}showmem ${white}|${green} --free ${iceblue}[display free memory in mb]\
	\n${orange}showmem ${white}|${green} --percent-used ${iceblue}[display used memory in %]\
	\n${orange}showmem ${white}|${green} --percent-free ${iceblue}[display free memory in %]" | column -t
	echo ""

}

_used ()
{

	used=$(free -m | grep 'buffers/cache' | awk '{print $3}')
	if [[ $used -lt 1000 ]]; then
		echo 0$used
	elif [[ $used -lt 100 ]]; then
		echo 00$used
	else	echo $used
	fi

}

_used_percent ()
{

	free | {
		read
		read m t u f s b c;
		f=$[$f + $b + $c]
		f=$[100-100*$f/$t]
		if [ $f -gt 100 ]; then
			f=100
		fi
		echo ${f}%
		}

}

_free ()
{

	free=$(free -m | grep 'buffers/cache' | awk '{print $4}')
	if [[ $free -lt 1000 ]]; then
		echo 0$free
	elif [[ $free -lt 100 ]]; then
		echo 00$ree
	else	echo $free
	fi

}

_free_percent ()
{

	free | {
		read
		read m t u f s b c;
		f=$[$f + $b + $c]
		f=$[100-100*$f/$t]
		if [ $f -gt 100 ]; then
			f=100
		fi
		echo $((100-${f}))%
		}

}

case $1 in

	*used )

		_used

	;;

	*free )

		_free

	;;

	*used-percent )

		_used_percent

	;;

	*free-percent )

		_free_percent

	;;

	* )

		_help

	;;

esac
