#!/usr/bin/env bash # source common.sh SEPARATOR_RIGHT_BOLD="" # SEPARATOR_RIGHT_THIN="" # MIN_MAJOR_VERSION="2" # MIN_MINOR_VERSION="1" # TMUX_VERSION="$(tmux -V)" get_tmux_cwd() { tmux display -p -F "#{pane_current_path}" } tmux_path=$(get_tmux_cwd) # cd "$tmux_path" && IFS='/' read -ra tmux_path_array <<<"$tmux_path" # pos=$((${#tmux_path_array[*]} - 1)) # last=${tmux_path_array[$pos]} # for i in "${tmux_path_array[@]}"; do # if [[ $i == "$last" ]]; then # shortened_path+=$i # else # shortened_path+=${i:0:1}/ # fi # done cd "${tmux_path}" function gitadditions { if cd "${tmux_path}" && git rev-parse --git-dir >/dev/null 2>&1; then insertions=$(git --no-pager diff --numstat | awk '{sum1+=$1}END{print sum1}') echo +"$insertions" fi } function gitdeletions { if cd "${tmux_path}" && git rev-parse --git-dir >/dev/null 2>&1; then deletions=$(git --no-pager diff --numstat | awk '{sum2+=$2}END{print sum2}') echo -"$deletions" fi } function git_untracked_info { if cd "${tmux_path}" && git rev-parse --git-dir >/dev/null 2>&1; then untracked=$(git ls-files --others --exclude-standard | wc -w) echo ⋯"$untracked" fi } function git_branch_info { if cd "${tmux_path}" && git rev-parse --git-dir >/dev/null 2>&1; then branch=$(git rev-parse --abbrev-ref HEAD) echo " $branch" fi } function repo_info { if cd "${tmux_path}" && git rev-parse --git-dir >/dev/null 2>&1; then insertions=$(git --no-pager diff --numstat | awk '{sum1+=$1}END{print sum1}') if git remote -v | grep github >/dev/null 2>&1; then echo   else echo  fi else : fi } function get_eth_price { PRICE_TIME_CACHE=60 PRICE_CACHE_OUTPUT_ETH=/tmp/tmux_PRICE_CACHE_ETH PRICE_CACHE_OUTPUT_XMR=/tmp/tmux_PRICE_CACHE_XMR PRICE_CACHE_OUTPUT_CAKE=/tmp/tmux_PRICE_CACHE_CAKE # eth_price=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=ETH&unit=USD" | jq ".price") # cake_price=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=CAKE&unit=USD" | jq ".price") # monero_price=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=XMR&unit=USD" | jq ".price") if [ $(($(stat --format=%Y $PRICE_CACHE_OUTPUT_ETH) + PRICE_TIME_CACHE)) -gt "$(date +%s)" ]; then : else if ETH_OUTPUT=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=ETH&unit=USD" | jq ".price"); then if [ -n "${ETH_OUTPUT}" ]; then echo "${ETH_OUTPUT}" >${PRICE_CACHE_OUTPUT_ETH} fi fi fi if [ $(($(stat --format=%Y $PRICE_CACHE_OUTPUT_CAKE) + PRICE_TIME_CACHE)) -gt "$(date +%s)" ]; then : else if CAKE_OUTPUT=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=CAKE&unit=USD" | jq ".price"); then if [ -n "${CAKE_OUTPUT}" ]; then echo "${CAKE_OUTPUT}" >${PRICE_CACHE_OUTPUT_CAKE} fi fi fi if [ $(($(stat --format=%Y $PRICE_CACHE_OUTPUT_XMR) + PRICE_TIME_CACHE)) -gt "$(date +%s)" ]; then : else if XMR_OUTPUT=$(proxychains4 -q -f ~/proxies/ice/proxychains.conf curl -s -X GET "https://api.terminaldweller.com/crypto/v1/price?name=XMR&unit=USD" | jq ".price"); then if [ -n "${XMR_OUTPUT}" ]; then echo "${XMR_OUTPUT}" >${PRICE_CACHE_OUTPUT_XMR} fi fi fi result="$(cat ${PRICE_CACHE_OUTPUT_ETH})"/"$(cat ${PRICE_CACHE_OUTPUT_CAKE})"/"$(cat ${PRICE_CACHE_OUTPUT_XMR})" echo "${result}" } tmux_session_info=" #S:#I.#P" branch_info="#[fg=colour16]$(repo_info)#[fg=colour0 bg=colour39]"$(git_branch_info) untracked_info="#[fg=colour255 bg=colour244]"$(git_untracked_info) deletions_info="#[fg=colour255 bg=colour1]"$(gitdeletions) additions_info="#[fg=colour255 bg=colour22]"$(gitadditions) eth_price="#[fg=colour16 bg=colour37]"$(get_eth_price) echo "#[fg=colour255 bg=colour26]$tmux_session_info #[fg=colour26 bg=colour39]$SEPARATOR_RIGHT_BOLD \ $branch_info #[fg=colour39 bg=colour22]$SEPARATOR_RIGHT_BOLD \ $additions_info #[fg=colour22 bg=colour1]$SEPARATOR_RIGHT_BOLD \ $deletions_info #[fg=colour1 bg=colour244]$SEPARATOR_RIGHT_BOLD \ $untracked_info #[fg=colour244 bg=colour37]$SEPARATOR_RIGHT_BOLD \ $eth_price #[fg=colour37 bg=colour16]$SEPARATOR_RIGHT_BOLD"