Created
May 29, 2018 15:35
-
-
Save ctaylo21/f776f0436684ff6f820760bd6c691901 to your computer and use it in GitHub Desktop.
Outputs a colorized apple with system info for OSX
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# ==USER== | |
user=$(whoami) | |
# ==HOSTNAME== | |
hostname=$(HOSTNAME | sed 's/.local//g') | |
# if hostname is >35 characters, truncates to make it fit on std. 80 window | |
if [ ${#HOSTNAME} -gt 35 ] | |
then | |
hostname=${HOSTNAME:0:35} | |
fi | |
# ==MODEL== | |
model=$(uname -smr) | |
# ==VERSION== | |
versionNumber=$(sw_vers -productVersion) # Finds version number | |
versionShort=${versionNumber:0:5} # Cut string to 1 decimal place for calculation | |
versionShort=(${versionShort//./ }) # Split it into an array using "."" as the delimiter | |
if [ ${versionShort[0]} = "10" ]; then | |
case ${versionShort[1]} in | |
0) | |
versionString="Cheetah" | |
;; | |
1) | |
versionString="Puma" | |
;; | |
2) | |
versionString="Jaguar" | |
;; | |
3) | |
versionString="Panther" | |
;; | |
4) | |
versionString="Tiger" | |
;; | |
5) | |
versionString="Leopard" | |
;; | |
6) | |
versionString="Snow Leopard" | |
;; | |
7) | |
versionString="Lion" | |
;; | |
8) | |
versionString="Mountian Lion" | |
;; | |
9) | |
versionString="Mavericks" | |
;; | |
10) | |
versionString="Yosemite" | |
;; | |
11) | |
versionString="El Capitan" | |
;; | |
esac | |
versionNumber="X $versionNumber" | |
else | |
versionString="" | |
fi | |
version="OS $versionNumber $versionString" | |
# ==KERNEL== | |
kernel="XNU" | |
# ==UPTIME== | |
uptime=$(uptime | sed 's/.*up \([^,]*\), .*/\1/') | |
# ==SHELL== | |
shell="$SHELL" | |
# ==TERMINAL== | |
terminal="$TERM" | |
# ==PACKAGE MANAGER== | |
# check if brew or macports is installed, then total there packages and set packagehandler | |
if [ -f /opt/local/bin/port ] #don't think this is the right directory, need to check later. EDIT (@avatsaev): yes it is the right dir | |
then | |
macportpackages="`port installed | wc -l | awk '{print $1 }'`" | |
packagehandler=$macportpackages' (macports)' | |
fi | |
if [ -e /usr/local/bin/brew ] | |
then | |
brewpackages=$(brew list -l | tail -n +2 | wc -l) | |
packagehandler+=''$brewpackages' (homebrew)' | |
fi | |
# ==CPU== | |
cpu=$(sysctl -n machdep.cpu.brand_string) | |
# removes (R) and (TM) from the CPU name so it fits in a standard 80 window | |
cpu=$(echo "$cpu" | awk '$1=$1' | sed 's/([A-Z]\{1,2\})//g') | |
# ==MEMORY== | |
mem=$(sysctl -n hw.memsize) | |
mem="$((mem/1000000000)) GB" | |
# ==DISK== | |
disk=`df | head -2 | tail -1 | awk '{print $5}'` | |
# Colors Variables | |
red="1" | |
green="2" | |
yellow="3" | |
blue="4" | |
purple="5" | |
lightblue="6" | |
grey="7" | |
textColor=$(tput setaf $lightblue) | |
normal=$(tput sgr0) | |
# While loops for script arguments | |
while [ $# -gt 0 ] | |
do | |
case "$1" in | |
-c|--color) | |
GR='\033[00;32m' | |
YE='\033[00;33m' | |
LR='\033[01;31m' | |
RE='\033[00;31m' | |
PU='\033[00;35m' | |
CY='\033[00;36m' | |
BL='\033[00;34m' | |
shift | |
;; | |
-red) | |
textColor=$(tput setaf $red) | |
shift | |
;; | |
-green) | |
textColor=$(tput setaf $green) | |
shift | |
;; | |
-yellow) | |
textColor=$(tput setaf $yellow) | |
shift | |
;; | |
-blue) | |
textColor=$(tput setaf $blue) | |
shift | |
;; | |
-purple) | |
textColor=$(tput setaf $purple) | |
shift | |
;; | |
-grey) | |
textColor=$(tput setaf $grey) | |
shift | |
;; | |
*) | |
break | |
;; | |
esac | |
done | |
userText="${textColor}User:${normal}" | |
hostnameText="${textColor}Hostname:${normal}" | |
modelText="${textColor}Darwin:${normal}" | |
versionText="${textColor}Version:${normal}" | |
kernelText="${textColor}Kernel:${normal}" | |
uptimeText="${textColor}Uptime:${normal}" | |
shellText="${BL}${textColor}Shell:${normal}" | |
terminalText="${textColor}Terminal:${normal}" | |
packagehandlerText="${textColor}Packages:${normal}" | |
cpuText="${textColor}CPU:${normal}" | |
memoryText="${textColor}Memory:${normal}" | |
diskText="${textColor}Disk:${normal}" | |
echo -e " | |
${GR} , | |
${GR} ,##; | |
${GR} #### $userText $user | |
${GR} ;#' $hostnameText $hostname | |
${GR} ,#####;, ,;#####;, $modelText $model | |
${GR} ######################' $versionText $version | |
${YE} #####################' $kernelText $kernel | |
${YE} ##################### $uptimeText $uptime | |
${LR} ##################### $shellText $shell | |
${RE} ######################, $terminalText $terminal | |
${RE} ####################### $packagehandlerText $packagehandler | |
${PU} ####################' $cpuText $cpu | |
${BL} #################' $memoryText $mem | |
${BL} '####''''####' $diskText $disk | |
${normal} | |
" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment