style: shellcheck fixes

This commit is contained in:
Abhishek Keshri 2023-03-29 14:52:27 +05:30
parent 54ecf3dc0b
commit de0e8225a6
No known key found for this signature in database
GPG key ID: 62BD6AA2E913B3D3
10 changed files with 356 additions and 389 deletions

View file

@ -2,128 +2,124 @@
# setting the locale, some users have issues with different locales, this forces the correct one # setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source $current_dir/utils.sh source "$current_dir"/utils.sh
linux_acpi() { linux_acpi() {
arg=$1 arg=$1
BAT=$(ls -d /sys/class/power_supply/BAT* | head -1) BAT=$(ls -d /sys/class/power_supply/BAT* | head -1)
if [ ! -x "$(which acpi 2> /dev/null)" ];then if [ ! -x "$(which acpi 2>/dev/null)" ]; then
case "$arg" in case "$arg" in
status) status)
cat $BAT/status cat "$BAT"/status
;; ;;
percent) percent)
cat $BAT/capacity cat "$BAT"/capacity
;; ;;
*) *) ;;
;;
esac esac
else else
case "$arg" in case "$arg" in
status) status)
acpi | cut -d: -f2- | cut -d, -f1 | tr -d ' ' acpi | cut -d: -f2- | cut -d, -f1 | tr -d ' '
;; ;;
percent) percent)
acpi | cut -d: -f2- | cut -d, -f2 | tr -d '% ' acpi | cut -d: -f2- | cut -d, -f2 | tr -d '% '
;; ;;
*) *) ;;
;;
esac esac
fi fi
} }
battery_percent() battery_percent() {
{ # Check OS
# Check OS case $(uname -s) in
case $(uname -s) in
Linux) Linux)
percent=$(linux_acpi percent) percent=$(linux_acpi percent)
[ -n "$percent" ] && echo " $percent" [ -n "$percent" ] && echo " $percent"
;; ;;
Darwin) Darwin)
echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%') echo $(pmset -g batt | grep -Eo '[0-9]?[0-9]?[0-9]%')
;; ;;
FreeBSD) FreeBSD)
echo $(apm | sed '8,11d' | grep life | awk '{print $4}') echo $(apm | sed '8,11d' | grep life | awk '{print $4}')
;; ;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# leaving empty - TODO - windows compatability # leaving empty - TODO - windows compatability
;; ;;
*) *) ;;
;;
esac esac
} }
battery_status() battery_status() {
{ # Check OS
# Check OS case $(uname -s) in
case $(uname -s) in
Linux) Linux)
status=$(linux_acpi status) status=$(linux_acpi status)
;; ;;
Darwin) Darwin)
status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2 | tr -d " ") status=$(pmset -g batt | sed -n 2p | cut -d ';' -f 2 | tr -d " ")
;; ;;
FreeBSD) FreeBSD)
status=$(apm | sed '8,11d' | grep Status | awk '{printf $3}') status=$(apm | sed '8,11d' | grep Status | awk '{printf $3}')
;; ;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# leaving empty - TODO - windows compatability # leaving empty - TODO - windows compatability
;; ;;
*) *) ;;
;;
esac
case $status in esac
discharging|Discharging)
echo '' case $status in
;; discharging | Discharging)
echo ''
;;
high) high)
echo '' echo ''
;; ;;
charging) charging)
echo '' echo ''
;; ;;
*) *)
echo '' echo ''
;; ;;
esac esac
### Old if statements didn't work on BSD, they're probably not POSIX compliant, not sure ### Old if statements didn't work on BSD, they're probably not POSIX compliant, not sure
# if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then # if [ $status = 'discharging' ] || [ $status = 'Discharging' ]; then
# echo '' # echo ''
# # elif [ $status = 'charging' ]; then # This is needed for FreeBSD AC checking support # # elif [ $status = 'charging' ]; then # This is needed for FreeBSD AC checking support
# # echo 'AC' # # echo 'AC'
# else # else
# echo 'AC' # echo 'AC'
# fi # fi
} }
main() main() {
{ bat_label=$(get_tmux_option "@tmux2k-battery-label" "")
bat_label=$(get_tmux_option "@tmux2k-battery-label" "") bat_stat=$(battery_status)
bat_stat=$(battery_status) bat_perc=$(battery_percent)
bat_perc=$(battery_percent)
if [ -z "$bat_stat" ]; then # Test if status is empty or not if [ -z "$bat_stat" ]; then # Test if status is empty or not
echo "$bat_label$bat_perc" echo "$bat_label$bat_perc"
elif [ -z "$bat_perc" ]; then # In case it is a desktop with no battery percent, only AC power elif [ -z "$bat_perc" ]; then # In case it is a desktop with no battery percent, only AC power
echo "$bat_label $bat_stat" echo "$bat_label $bat_stat"
else else
echo "$bat_label $bat_stat$bat_perc" echo "$bat_label $bat_stat$bat_perc"
fi fi
} }
#run main driver program #run main driver program
main main

View file

@ -2,56 +2,55 @@
# setting the locale, some users have issues with different locales, this forces the correct one # setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$current_dir"/utils.sh source "$current_dir"/utils.sh
get_percent() get_percent() {
{ case $(uname -s) in
case $(uname -s) in
Linux) Linux)
percent=$(LC_NUMERIC=en_US.UTF-8 top -bn2 -d 0.01 | grep "Cpu(s)" | tail -1 | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}') percent=$(LC_NUMERIC=en_US.UTF-8 top -bn2 -d 0.01 | grep "Cpu(s)" | tail -1 | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')
normalize_percent_len "$percent" normalize_percent_len "$percent"
;; ;;
Darwin) Darwin)
cpuvalue=$(ps -A -o %cpu | awk -F. '{s+=$1} END {print s}') cpuvalue=$(ps -A -o %cpu | awk -F. '{s+=$1} END {print s}')
cpucores=$(sysctl -n hw.logicalcpu) cpucores=$(sysctl -n hw.logicalcpu)
cpuusage=$(( cpuvalue / cpucores )) cpuusage=$((cpuvalue / cpucores))
percent="$cpuusage%" percent="$cpuusage%"
normalize_percent_len $percent normalize_percent_len $percent
;; ;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# TODO - windows compatability # TODO - windows compatability
;; ;;
esac esac
} }
get_load() { get_load() {
case $(uname -s) in case $(uname -s) in
Linux | Darwin) Linux | Darwin)
loadavg=$(uptime | awk -F'[a-z]:' '{ print $2}' | sed 's/,//g') loadavg=$(uptime | awk -F'[a-z]:' '{ print $2}' | sed 's/,//g')
echo $loadavg echo "$loadavg"
;; ;;
CYGWIN* | MINGW32* | MSYS* | MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# TODO - windows compatability # TODO - windows compatability
;; ;;
esac esac
} }
main() { main() {
# storing the refresh rate in the variable RATE, default is 5 # storing the refresh rate in the variable RATE, default is 5
RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5) RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5)
cpu_load=$(get_tmux_option "@tmux2k-cpu-display-load" false) cpu_load=$(get_tmux_option "@tmux2k-cpu-display-load" false)
if [ "$cpu_load" = true ]; then if [ "$cpu_load" = true ]; then
echo "$(get_load)" echo "$(get_load)"
else else
cpu_label=$(get_tmux_option "@tmux2k-cpu-usage-label" "") cpu_label=$(get_tmux_option "@tmux2k-cpu-usage-label" "")
cpu_percent=$(get_percent) cpu_percent=$(get_percent)
echo "$cpu_label $cpu_percent" echo "$cpu_label $cpu_percent"
fi fi
sleep "$RATE" sleep "$RATE"
} }
# run main driver # run main driver

View file

@ -1,39 +1,36 @@
#!/usr/bin/env bash #!/usr/bin/env bash
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source $current_dir/utils.sh source "$current_dir"/utils.sh
IFS=' ' read -r -a hide_status <<< $(get_tmux_option "@tmux2k-git-disable-status" "false") IFS=' ' read -r -a hide_status <<<$(get_tmux_option "@tmux2k-git-disable-status" "false")
IFS=' ' read -r -a current_symbol <<< $(get_tmux_option "@tmux2k-git-show-current-symbol" "") IFS=' ' read -r -a current_symbol <<<$(get_tmux_option "@tmux2k-git-show-current-symbol" "")
IFS=' ' read -r -a diff_symbol <<< $(get_tmux_option "@tmux2k-git-show-diff-symbol" "") IFS=' ' read -r -a diff_symbol <<<$(get_tmux_option "@tmux2k-git-show-diff-symbol" "")
IFS=' ' read -r -a no_repo_message <<< $(get_tmux_option "@tmux2k-git-no-repo-message" "") IFS=' ' read -r -a no_repo_message <<<$(get_tmux_option "@tmux2k-git-no-repo-message" "")
# Get added, modified, updated and deleted files from git status # Get added, modified, updated and deleted files from git status
getChanges() getChanges() {
{ declare -i added=0
declare -i added=0; declare -i modified=0
declare -i modified=0; declare -i updated=0
declare -i updated=0; declare -i deleted=0
declare -i deleted=0;
for i in $(git -C $path status -s) for i in $(git -C "$path" status -s); do
case $i in
'A')
added+=1
;;
'M')
modified+=1
;;
'U')
updated+=1
;;
'D')
deleted+=1
;;
do esac
case $i in
'A')
added+=1
;;
'M')
modified+=1
;;
'U')
updated+=1
;;
'D')
deleted+=1
;;
esac
done done
output="" output=""
@ -42,30 +39,25 @@ for i in $(git -C $path status -s)
[ $updated -gt 0 ] && output+=" ${updated}" [ $updated -gt 0 ] && output+=" ${updated}"
[ $deleted -gt 0 ] && output+=" ${deleted}" [ $deleted -gt 0 ] && output+=" ${deleted}"
echo $output echo "$output"
} }
# getting the #{pane_current_path} from tmux2k.sh is no longer possible # getting the #{pane_current_path} from tmux2k.sh is no longer possible
getPaneDir() getPaneDir() {
{ nextone="false"
nextone="false" for i in $(tmux list-panes -F "#{pane_active} #{pane_current_path}"); do
for i in $(tmux list-panes -F "#{pane_active} #{pane_current_path}"); if [ "$nextone" == "true" ]; then
do echo "$i"
if [ "$nextone" == "true" ]; then return
echo $i fi
return if [ "$i" == "1" ]; then
fi nextone="true"
if [ "$i" == "1" ]; then fi
nextone="true" done
fi
done
} }
# check if the current or diff symbol is empty to remove ugly padding # check if the current or diff symbol is empty to remove ugly padding
checkEmptySymbol() checkEmptySymbol() {
{
symbol=$1 symbol=$1
if [ "$symbol" == "" ]; then if [ "$symbol" == "" ]; then
echo "true" echo "true"
@ -75,10 +67,9 @@ checkEmptySymbol()
} }
# check to see if the current repo is not up to date with HEAD # check to see if the current repo is not up to date with HEAD
checkForChanges() checkForChanges() {
{
if [ "$(checkForGitDir)" == "true" ]; then if [ "$(checkForGitDir)" == "true" ]; then
if [ "$(git -C $path status -s)" != "" ]; then if [ "$(git -C "$path" status -s)" != "" ]; then
echo "true" echo "true"
else else
echo "false" echo "false"
@ -89,9 +80,8 @@ checkForChanges()
} }
# check if a git repo exists in the directory # check if a git repo exists in the directory
checkForGitDir() checkForGitDir() {
{ if [ "$(git -C "$path" rev-parse --abbrev-ref HEAD)" != "" ]; then
if [ "$(git -C $path rev-parse --abbrev-ref HEAD)" != "" ]; then
echo "true" echo "true"
else else
echo "false" echo "false"
@ -99,18 +89,16 @@ checkForGitDir()
} }
# return branch name if there is one # return branch name if there is one
getBranch() getBranch() {
{
if [ $(checkForGitDir) == "true" ]; then if [ $(checkForGitDir) == "true" ]; then
printf "%.20s " $(git -C $path rev-parse --abbrev-ref HEAD) printf "%.20s " $(git -C "$path" rev-parse --abbrev-ref HEAD)
else else
echo $no_repo_message echo "$no_repo_message"
fi fi
} }
# return the final message for the status bar # return the final message for the status bar
getMessage() getMessage() {
{
if [ $(checkForGitDir) == "true" ]; then if [ $(checkForGitDir) == "true" ]; then
branch="$(getBranch)" branch="$(getBranch)"
@ -119,13 +107,13 @@ getMessage()
changes="$(getChanges)" changes="$(getChanges)"
if [ "${hide_status}" == "false" ]; then if [ "${hide_status}" == "false" ]; then
if [ $(checkEmptySymbol $diff_symbol) == "true" ]; then if [ $(checkEmptySymbol "$diff_symbol") == "true" ]; then
echo "${changes} $branch" echo "${changes} $branch"
else else
echo "$diff_symbol ${changes} $branch" echo "$diff_symbol ${changes} $branch"
fi fi
else else
if [ $(checkEmptySymbol $diff_symbol) == "true" ]; then if [ $(checkEmptySymbol "$diff_symbol") == "true" ]; then
echo "$branch" echo "$branch"
else else
echo "$diff_symbol $branch" echo "$diff_symbol $branch"
@ -133,19 +121,18 @@ getMessage()
fi fi
else else
if [ $(checkEmptySymbol $current_symbol) == "true" ]; then if [ $(checkEmptySymbol "$current_symbol") == "true" ]; then
echo "$branch" echo "$branch"
else else
echo "$current_symbol $branch" echo "$current_symbol $branch"
fi fi
fi fi
else else
echo $no_repo_message echo "$no_repo_message"
fi fi
} }
main() main() {
{
path=$(getPaneDir) path=$(getPaneDir)
getMessage getMessage
} }

View file

@ -2,46 +2,43 @@
# setting the locale, some users have issues with different locales, this forces the correct one # setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$current_dir"/utils.sh source "$current_dir"/utils.sh
get_platform() get_platform() {
{ case $(uname -s) in
case $(uname -s) in
Linux) Linux)
gpu=$(lspci -v | grep VGA | head -n 1 | awk '{print $5}') gpu=$(lspci -v | grep VGA | head -n 1 | awk '{print $5}')
echo "$gpu" echo "$gpu"
;; ;;
Darwin) Darwin)
# TODO - Darwin/Mac compatability # TODO - Darwin/Mac compatability
;; ;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# TODO - windows compatability # TODO - windows compatability
;; ;;
esac esac
} }
get_gpu() get_gpu() {
{ gpu=$(get_platform)
gpu=$(get_platform) if [[ "$gpu" == NVIDIA ]]; then
if [[ "$gpu" == NVIDIA ]]; then usage=$(nvidia-smi | grep '%' | awk '{ sum += $13 } END { printf("%d%%\n", sum / NR) }')
usage=$(nvidia-smi | grep '%' | awk '{ sum += $13 } END { printf("%d%%\n", sum / NR) }') else
else usage='unknown'
usage='unknown' fi
fi normalize_percent_len $usage
normalize_percent_len $usage
} }
main() main() {
{ # storing the refresh rate in the variable RATE, default is 5
# storing the refresh rate in the variable RATE, default is 5 RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5)
RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5) gpu_label=$(get_tmux_option "@tmux2k-gpu-usage-label" "GPU")
gpu_label=$(get_tmux_option "@tmux2k-gpu-usage-label" "GPU") gpu_usage=$(get_gpu)
gpu_usage=$(get_gpu) echo "$gpu_label $gpu_usage"
echo "$gpu_label $gpu_usage" sleep "$RATE"
sleep "$RATE"
} }
# run the main driver # run the main driver

View file

@ -10,25 +10,25 @@ current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$current_dir"/utils.sh source "$current_dir"/utils.sh
ping_function() { ping_function() {
case $(uname -s) in case $(uname -s) in
Linux | Darwin) Linux | Darwin)
# storing the hostname/IP in the variable PINGSERVER, default is google.com # storing the hostname/IP in the variable PINGSERVER, default is google.com
pingserver=$(get_tmux_option "@tmux2k-ping-server" "google.com") pingserver=$(get_tmux_option "@tmux2k-ping-server" "google.com")
pingtime=$(ping -c 1 "$pingserver" | tail -1 | awk '{print $4}' | cut -d '/' -f 2) pingtime=$(ping -c 1 "$pingserver" | tail -1 | awk '{print $4}' | cut -d '/' -f 2)
echo "$pingtime ms" echo "$pingtime ms"
;; ;;
CYGWIN* | MINGW32* | MSYS* | MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# TODO - windows compatability # TODO - windows compatability
;; ;;
esac esac
} }
main() { main() {
echo "$(ping_function)" echo "$(ping_function)"
RATE=$(get_tmux_option "@tmux2k-ping-rate" 5) RATE=$(get_tmux_option "@tmux2k-ping-rate" 5)
sleep "$RATE" sleep "$RATE"
} }
# run main driver # run main driver

View file

@ -2,74 +2,72 @@
# setting the locale, some users have issues with different locales, this forces the correct one # setting the locale, some users have issues with different locales, this forces the correct one
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source $current_dir/utils.sh source "$current_dir"/utils.sh
get_percent() get_percent() {
{ case $(uname -s) in
case $(uname -s) in
Linux) Linux)
total_mem_gb=$(free -g | awk '/^Mem/ {print $2}') total_mem_gb=$(free -g | awk '/^Mem/ {print $2}')
used_mem=$(free -g | awk '/^Mem/ {print $3}') used_mem=$(free -g | awk '/^Mem/ {print $3}')
total_mem=$(free -h | awk '/^Mem/ {print $2}') total_mem=$(free -h | awk '/^Mem/ {print $2}')
if (( "$total_mem_gb" == 0)); then if (("$total_mem_gb" == 0)); then
memory_usage=$(free -m | awk '/^Mem/ {print $3}') memory_usage=$(free -m | awk '/^Mem/ {print $3}')
total_mem_mb=$(free -m | awk '/^Mem/ {print $2}') total_mem_mb=$(free -m | awk '/^Mem/ {print $2}')
echo $memory_usage\M\B/$total_mem_mb\M\B echo "$memory_usage"\M\B/"$total_mem_mb"\M\B
elif (( "$used_mem" == 0 )); then elif (("$used_mem" == 0)); then
memory_usage=$(free -m | awk '/^Mem/ {print $3}') memory_usage=$(free -m | awk '/^Mem/ {print $3}')
echo $memory_usage\M\B/$total_mem_gb\G\B echo "$memory_usage"\M\B/"$total_mem_gb"\G\B
else else
memory_usage=$(free -g | awk '/^Mem/ {print $3}') memory_usage=$(free -g | awk '/^Mem/ {print $3}')
echo $memory_usage\G\B/$total_mem_gb\G\B echo "$memory_usage"\G\B/"$total_mem_gb"\G\B
fi fi
;; ;;
Darwin) Darwin)
# Get used memory blocks with vm_stat, multiply by page size to get size in bytes, then convert to MiB # Get used memory blocks with vm_stat, multiply by page size to get size in bytes, then convert to MiB
used_mem=$(vm_stat | grep ' active\|wired ' | sed 's/[^0-9]//g' | paste -sd ' ' - | awk -v pagesize=$(pagesize) '{printf "%d\n", ($1+$2) * pagesize / 1048576}') used_mem=$(vm_stat | grep ' active\|wired ' | sed 's/[^0-9]//g' | paste -sd ' ' - | awk -v pagesize=$(pagesize) '{printf "%d\n", ($1+$2) * pagesize / 1048576}')
total_mem=$(system_profiler SPHardwareDataType | grep "Memory:" | awk '{print $2 $3}') total_mem=$(system_profiler SPHardwareDataType | grep "Memory:" | awk '{print $2 $3}')
if (( "$used_mem" < 1024 )); then if (("$used_mem" < 1024)); then
echo $used_mem\M\B/$total_mem echo "$used_mem"\M\B/"$total_mem"
else else
memory=$(($used_mem/1024)) memory=$(($used_mem / 1024))
echo $memory\G\B/$total_mem echo $memory\G\B/$total_mem
fi fi
;; ;;
FreeBSD) FreeBSD)
# Looked at the code from neofetch # Looked at the code from neofetch
hw_pagesize="$(sysctl -n hw.pagesize)" hw_pagesize="$(sysctl -n hw.pagesize)"
mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))" mem_inactive="$(($(sysctl -n vm.stats.vm.v_inactive_count) * hw_pagesize))"
mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))" mem_unused="$(($(sysctl -n vm.stats.vm.v_free_count) * hw_pagesize))"
mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))" mem_cache="$(($(sysctl -n vm.stats.vm.v_cache_count) * hw_pagesize))"
free_mem=$(((mem_inactive + mem_unused + mem_cache) / 1024 / 1024)) free_mem=$(((mem_inactive + mem_unused + mem_cache) / 1024 / 1024))
total_mem=$(($(sysctl -n hw.physmem) / 1024 / 1024)) total_mem=$(($(sysctl -n hw.physmem) / 1024 / 1024))
used_mem=$((total_mem - free_mem)) used_mem=$((total_mem - free_mem))
echo $used_mem echo $used_mem
if (( "$used_mem" < 1024 )); then if (("$used_mem" < 1024)); then
echo $used_mem\M\B/$total_mem echo $used_mem\M\B/$total_mem
else else
memory=$(($used_mem/1024)) memory=$(($used_mem / 1024))
echo $memory\G\B/$total_mem echo $memory\G\B/$total_mem
fi fi
;; ;;
CYGWIN*|MINGW32*|MSYS*|MINGW*) CYGWIN* | MINGW32* | MSYS* | MINGW*)
# TODO - windows compatability # TODO - windows compatability
;; ;;
esac esac
} }
main() main() {
{ # storing the refresh rate in the variable RATE, default is 5
# storing the refresh rate in the variable RATE, default is 5 RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5)
RATE=$(get_tmux_option "@tmux2k-refresh-rate" 5) ram_label=$(get_tmux_option "@tmux2k-ram-usage-label" "")
ram_label=$(get_tmux_option "@tmux2k-ram-usage-label" "") ram_percent=$(get_percent)
ram_percent=$(get_percent) echo "$ram_label $ram_percent"
echo "$ram_label $ram_percent" sleep "$RATE"
sleep "$RATE"
} }
#run main driver #run main driver

View file

@ -11,37 +11,33 @@ fixedlocation=$3
LOCKFILE=/tmp/.tmux2k-tmux-weather.lock LOCKFILE=/tmp/.tmux2k-tmux-weather.lock
DATAFILE=/tmp/.tmux2k-tmux-data DATAFILE=/tmp/.tmux2k-tmux-data
ensure_single_process() ensure_single_process() {
{ # check for another running instance of this script and terminate it if found
# check for another running instance of this script and terminate it if found [ -f $LOCKFILE ] && ps -p "$(cat $LOCKFILE)" -o cmd= | grep -F " ${BASH_SOURCE[0]}" && kill "$(cat $LOCKFILE)"
[ -f $LOCKFILE ] && ps -p "$(cat $LOCKFILE)" -o cmd= | grep -F " ${BASH_SOURCE[0]}" && kill "$(cat $LOCKFILE)" echo $$ >$LOCKFILE
echo $$ > $LOCKFILE
} }
main() main() {
{ ensure_single_process
ensure_single_process
current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" current_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ ! -f $DATAFILE ]; then if [ ! -f $DATAFILE ]; then
printf "Loading..." > $DATAFILE printf "Loading..." >$DATAFILE
fi
"$current_dir"/weather.sh > $DATAFILE
while tmux has-session &> /dev/null
do
"$current_dir"/weather.sh "$fahrenheit" "$location" "$fixedlocation" > $DATAFILE
if tmux has-session &> /dev/null
then
sleep 1200
else
break
fi fi
done
rm $LOCKFILE "$current_dir"/weather.sh >$DATAFILE
while tmux has-session &>/dev/null; do
"$current_dir"/weather.sh "$fahrenheit" "$location" "$fixedlocation" >$DATAFILE
if tmux has-session &>/dev/null; then
sleep 1200
else
break
fi
done
rm $LOCKFILE
} }
#run main driver function #run main driver function

View file

@ -65,7 +65,7 @@ main() {
# Handle left icon padding # Handle left icon padding
padding="" padding=""
if [ "$show_left_icon_padding" -gt "0" ]; then if [ "$show_left_icon_padding" -gt "0" ]; then
padding="$(printf '%*s' $show_left_icon_padding)" padding="$(printf '%*s' "$show_left_icon_padding")"
fi fi
left_icon="$left_icon$padding" left_icon="$left_icon$padding"

View file

@ -1,25 +1,24 @@
#!/usr/bin/env bash #!/usr/bin/env bash
get_tmux_option() { get_tmux_option() {
local option=$1 local option=$1
local default_value=$2 local default_value=$2
local option_value=$(tmux show-option -gqv "$option") local option_value=$(tmux show-option -gqv "$option")
if [ -z "$option_value" ]; then if [ -z "$option_value" ]; then
echo $default_value echo $default_value
else else
echo $option_value echo $option_value
fi fi
} }
# normalize the percentage string to always have a length of 5 # normalize the percentage string to always have a length of 5
normalize_percent_len() { normalize_percent_len() {
# the max length that the percent can reach, which happens for a two digit number with a decimal house: "99.9%" # the max length that the percent can reach, which happens for a two digit number with a decimal house: "99.9%"
max_len=5 max_len=5
percent_len=${#1} percent_len=${#1}
let diff_len=$max_len-$percent_len let diff_len=$max_len-$percent_len
# if the diff_len is even, left will have 1 more space than right # if the diff_len is even, left will have 1 more space than right
let left_spaces=($diff_len+1)/2 let left_spaces=($diff_len + 1)/2
let right_spaces=($diff_len)/2 let right_spaces=($diff_len)/2
printf "%${left_spaces}s%s%${right_spaces}s\n" "" $1 "" printf "%${left_spaces}s%s%${right_spaces}s\n" "" $1 ""
} }

View file

@ -6,68 +6,63 @@ fahrenheit=$1
location=$2 location=$2
fixedlocation=$3 fixedlocation=$3
display_location() display_location() {
{ if $location && [[ -n "$fixedlocation" ]]; then
if $location && [[ ! -z "$fixedlocation" ]]; then echo " $fixedlocation"
echo " $fixedlocation" elif $location; then
elif $location; then city=$(curl -s https://ipinfo.io/city 2>/dev/null)
city=$(curl -s https://ipinfo.io/city 2> /dev/null) region=$(curl -s https://ipinfo.io/region 2>/dev/null)
region=$(curl -s https://ipinfo.io/region 2> /dev/null) echo " $city, $region"
echo " $city, $region" else
else echo ''
echo '' fi
fi
} }
fetch_weather_information() fetch_weather_information() {
{ display_weather=$1
display_weather=$1 # it gets the weather condition textual name (%C), and the temperature (%t)
# it gets the weather condition textual name (%C), and the temperature (%t) curl -sL wttr.in/"$fixedlocation"\?format="%C+%t$display_weather"
curl -sL wttr.in/$fixedlocation\?format="%C+%t$display_weather"
} }
#get weather display #get weather display
display_weather() display_weather() {
{ if $fahrenheit; then
if $fahrenheit; then display_weather='&u' # for USA system
display_weather='&u' # for USA system else
else display_weather='&m' # for metric system
display_weather='&m' # for metric system fi
fi weather_information=$(fetch_weather_information $display_weather)
weather_information=$(fetch_weather_information $display_weather)
weather_condition=$(echo "$weather_information" | rev | cut -d ' ' -f2- | rev) # Sunny, Snow, etc weather_condition=$(echo "$weather_information" | rev | cut -d ' ' -f2- | rev) # Sunny, Snow, etc
temperature=$(echo "$weather_information" | rev | cut -d ' ' -f 1 | rev) # +31°C, -3°F, etc temperature=$(echo "$weather_information" | rev | cut -d ' ' -f 1 | rev) # +31°C, -3°F, etc
unicode=$(forecast_unicode "$weather_condition") unicode=$(forecast_unicode "$weather_condition")
echo "$unicode${temperature/+/}" # remove the plus sign to the temperature echo "$unicode${temperature/+/}" # remove the plus sign to the temperature
} }
forecast_unicode() forecast_unicode() {
{ weather_condition=$(echo "$weather_condition" | awk '{print tolower($0)}')
weather_condition=$(echo "$weather_condition" | awk '{print tolower($0)}')
if [[ $weather_condition =~ 'snow' ]]; then if [[ $weather_condition =~ 'snow' ]]; then
echo '❄ ' echo '❄ '
elif [[ (($weather_condition =~ 'rain') || ($weather_condition =~ 'shower')) ]]; then elif [[ (($weather_condition =~ 'rain') || ($weather_condition =~ 'shower')) ]]; then
echo '☂ ' echo '☂ '
elif [[ (($weather_condition =~ 'overcast') || ($weather_condition =~ 'cloud')) ]]; then elif [[ (($weather_condition =~ 'overcast') || ($weather_condition =~ 'cloud')) ]]; then
echo '☁ ' echo '☁ '
elif [[ $weather_condition = 'NA' ]]; then elif [[ $weather_condition = 'NA' ]]; then
echo '' echo ''
else else
echo '☀ ' echo '☀ '
fi fi
} }
main() main() {
{ # process should be cancelled when session is killed
# process should be cancelled when session is killed if ping -q -c 1 -W 1 ipinfo.io &>/dev/null; then
if ping -q -c 1 -W 1 ipinfo.io &>/dev/null; then echo "$(display_weather)$(display_location)"
echo "$(display_weather)$(display_location)" else
else echo "Location Unavailable"
echo "Location Unavailable" fi
fi
} }
#run main driver program #run main driver program