tsfetch/tsfetch.sh

68 lines
5 KiB
Bash
Raw Normal View History

2024-11-15 18:44:58 -05:00
#!/usr/bin/env bash
2024-11-14 07:40:45 -05:00
# Dependency check
command -v jq > /dev/null && true || printf "\033[1;31mInstall jq, then come back.\n"
command -v jq > /dev/null && true || exit
command -v tailscale > /dev/null && true || printf "\033[1;31mInstall Tailscale, then come back.\n"
command -v tailscale > /dev/null && true || exit
# Define useful variables
tailscaleStatus=`tailscale status --json`
isTailscaleUp=`echo $tailscaleStatus | jq .Self.Online`
tailnetName=`echo $tailscaleStatus | jq -r .CurrentTailnet.Name`
tailscaleVersion=`echo $tailscaleStatus | jq -r .Version`
tailscaleIPs=`echo $tailscaleStatus | jq -r '.TailscaleIPs | join(", ")'`
tailscalePeerCount=`echo $tailscaleStatus | jq -r '.Peer | length'`
tailscaleOnlinePeerCount=`echo $tailscaleStatus | jq -r '[.Peer[] | select(.Online == true)] | length'`
tailscaleOfflinePeerCount=`echo $tailscaleStatus | jq -r '[.Peer[] | select(.Online == false)] | length'`
tailscaleExitNodesCount=`echo $tailscaleStatus | jq -r '[.Peer[] | select(.ExitNodeOption == true)] | length'`
tailscaleIsExitNode=`echo $tailscaleStatus | jq -r .Self.ExitNode`
tailscaleCanBeExitNode=`echo $tailscaleStatus | jq -r .Self.ExitNodeOption`
tailscaleDeviceID=`echo $tailscaleStatus | jq -r .Self.ID`
tailscaleUserID=`echo $tailscaleStatus | jq -r .Self.UserID`
tailscaleIsMagicDNSEnabled=`echo $tailscaleStatus | jq -r .CurrentTailnet.MagicDNSEnabled`
tailscaleMagicDNSHostname=`echo $tailscaleStatus | jq -r .CurrentTailnet.MagicDNSSuffix`
tailscaleLoginName=`echo $tailscaleStatus | jq -r '.Self.UserID as $userID | .User[] | select(.ID == $userID) | .LoginName'`
tailscaleUserCount=`echo $tailscaleStatus | jq -r '.Peer | length'`
tailscaleAPIURL=`echo $tailscaleStatus | jq -r '.Self.PeerAPIURL[0]'`
# Show content
printf "\033[0;38;5;248m oooooooo oooooooo oooooooo \033[1;37m$tailnetName\033[0;38;5;248m\n"
printf " oooooooooo oooooooooo oooooooooo \033[1;37m--------------\033[0;38;5;248m\n"
printf " oooooooooooo oooooooooooo oooooooooooo \033[1;37mVersion: \033[0;37m$tailscaleVersion\033[0;38;5;248m\n"
printf " oooooooooo oooooooooo oooooooooo \033[1;37mIP addresses: \033[0;37m$tailscaleIPs\033[0;38;5;248m\n"
printf " oooooooo oooooooo oooooooo \033[1;37mDevice count: \033[0;37m$tailscalePeerCount ($tailscaleOnlinePeerCount online, $tailscaleOfflinePeerCount offline, $tailscaleExitNodesCount exit node/s)\033[0;38;5;248m\n"
printf " \033[1;37mIs exit node: \033[0;37m$tailscaleIsExitNode\033[0;38;5;248m\n"
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || printf "\033[0;38;5;248m"
printf " oooooooo oooooooo oooooooo \033[1;37mAllowed to be exit node: \033[0;37m$tailscaleCanBeExitNode\033[0;38;5;248m\n"
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || printf "\033[0;38;5;248m"
printf " oooooooooo oooooooooo oooooooooo \033[1;37mDevice ID: \033[0;37m$tailscaleDeviceID\033[0;38;5;248m\n"
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || printf "\033[0;38;5;248m"
printf " oooooooooooo oooooooooooo oooooooooooo \033[1;37mUser ID: \033[0;37m$tailscaleUserID\033[0;38;5;248m\n"
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || printf "\033[0;38;5;248m"
printf " oooooooooo oooooooooo oooooooooo \033[1;37mMagicDNS enabled: \033[0;37m$tailscaleIsMagicDNSEnabled\033[0;38;5;248m\n"
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || printf "\033[0;38;5;248m"
printf " oooooooo oooooooo oooooooo \033[1;37mMagicDNS hostname: \033[0;37m$tailscaleMagicDNSHostname\033[0;38;5;248m\n"
printf " \033[1;37mUser login name: \033[0;37m$tailscaleLoginName\033[0;38;5;248m\n"
printf "\033[0;38;5;248m oooooooo "
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || false
printf "oooooooo "
printf "\033[0;38;5;248moooooooo \033[1;37mTailnet user count: \033[0;37m$tailscaleUserCount\033[0;38;5;248m\n"
printf "\033[0;38;5;248m oooooooooo "
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || false
printf "oooooooooo "
printf "\033[0;38;5;248moooooooooo \033[1;37mPeer API URL: \033[0;37m$tailscaleAPIURL\033[0;38;5;248m\n"
printf "\033[0;38;5;248m oooooooooooo "
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || false
printf "oooooooooooo "
printf "\033[0;38;5;248moooooooooooo\n"
printf "\033[0;38;5;248m oooooooooo "
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || false
printf "oooooooooo "
printf "\033[0;38;5;248moooooooooo \033[40m \033[41m \033[42m \033[43m \033[44m \033[45m \033[46m \033[47m \033[m\n"
printf "\033[0;38;5;248m oooooooo "
[[ "$isTailscaleUp" == "true" ]] && printf "\033[1;37m" || false
printf "oooooooo "
2024-11-15 18:44:58 -05:00
printf "\033[0;38;5;248moooooooo \033[100m \033[101m \033[102m \033[103m \033[104m \033[105m \033[106m \033[107m \033[m\n\n\n"