Skip to content

Instantly share code, notes, and snippets.

@bluemeda bluemeda/geget
Last active Aug 28, 2019

Embed
What would you like to do?
A wise way to spend your remaining internet data
#!/usr/bin/env bash
usage()
{
clear
echo
RESET_ATTR="$(tput sgr0)"
COLOR_GREEN="$(tput setaf 2)"
COLOR_DARK_GREY="$(tput setaf 245)"
COLOR_DARK_BLUE="$(tput setaf 046)"
echo "geget, Version 0.0.1"
echo
echo "A ${COLOR_GREEN}wise way${RESET_ATTR} to spend your remaining internet data."
echo
echo "Usage: ${COLOR_GREEN}$0 [-q|--quota] quota{M|G}${RESET_ATTR}"
echo
echo "Where: ${COLOR_GREEN}quota${RESET_ATTR} is either in GB (1G or 2.3G),"
echo " or in MB (Must be greater or equal than 100.)."
echo
echo "Example: ${COLOR_GREEN}$0 -q 2G${RESET_ATTR}"
echo " ${COLOR_GREEN}$0 -q 1.5G${RESET_ATTR}"
echo " ${COLOR_GREEN}$0 -q 700M${RESET_ATTR}"
echo
echo "Written by ${COLOR_DARK_GREY}Apip${RESET_ATTR}"
echo "${COLOR_DARK_BLUE}https://bluemeda.web.id${RESET_ATTR}"
echo
exit 2
}
calculate()
{
QUOTA_NUM=${1%?}
URL="https://sgp-ping.vultr.com/vultr.com.100MB.bin"
if [[ $QUOTA =~ .+[G]$ ]]; then
QUOTA_NUM="$(echo "${QUOTA_NUM} * 1000" | bc)"
elif [[ 1 -eq "$(echo "${QUOTA_NUM} < 100" | bc)" ]]; then
usage
fi
LOOP="$(echo "${QUOTA_NUM} / 100" | bc)"
for (( i = 0; i < $LOOP; i++ )); do
curl -# -H 'Cache-Control: no-cache' --output /dev/null $URL
TOTAL_DATA=$(((i+1)*100))
DATA_UNIT="MB"
if [[ $TOTAL_DATA -gt 1000 ]]; then
TOTAL_DATA="$(echo "scale=1; ${TOTAL_DATA} / 1000" | bc)"
DATA_UNIT=GB
fi
echo "${TOTAL_DATA}${DATA_UNIT}"
done
}
case $1 in
-q | --quota )
shift; QUOTA=$1
;;
*)
usage
;;
esac; shift
if [[ $QUOTA =~ ^[0-9]+\.?[0-9]*[GM]$ ]]; then
calculate $QUOTA
else
usage
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.