Browse Source

life.sh: added life span reminder to default setups

control 2 năm trước cách đây
mục cha
commit
3593abba74
2 tập tin đã thay đổi với 76 bổ sung0 xóa
  1. 73 0
      life.sh
  2. 3 0
      setup.sh

+ 73 - 0
life.sh

@@ -0,0 +1,73 @@
+#!/bin/bash
+
+RED="\033[41m  \033[0m"
+GREEN="\033[42m  \033[0m"
+GAP=" "
+
+if [ $# -lt 1 ]; then
+  echo "Usage: $0 birthdate [username]"
+  echo "Example: $0 1985-06-08 Joe"
+  exit 1
+fi
+
+birthdate=$1
+name=${2:-$USER}
+columns=${3:-20}
+
+life_expectancy=80
+last_year_index=$((life_expectancy - 1))
+
+case "$(uname)" in
+  "Linux")
+    birth_year=$(date -d "$birthdate" +"%Y")
+    birth_timestamp=$(date -d "$birthdate" +%s)
+    ;;
+  "Darwin")
+    birth_year=$(date -j -f "%Y-%m-%d" "$birthdate" +"%Y")
+    birth_timestamp=$(date -j -f "%Y-%m-%d" "$birthdate" +%s)
+    ;;
+  *) echo "Unsupported OS"; exit 1 ;;
+esac
+
+current_year=$(date +"%Y")
+current_timestamp=$(date +%s)
+years_passed=$((current_year - birth_year))
+weeks_passed=$(( (current_timestamp - birth_timestamp) / 604800 ))
+total_weeks=$((life_expectancy * 52))
+weeks_remaining=$((total_weeks - weeks_passed))
+
+echo -e "$name, only $weeks_remaining Sundays remain\n"
+
+rows=$((life_expectancy / columns))
+
+for (( row=0; row<rows; row++ )); do
+    for (( col=0; col<columns; col++ )); do
+        year_index=$((row * columns + col))
+          if (( year_index == 0 )); then
+            echo $birth_year
+          fi
+        if (( year_index < years_passed )); then
+            echo -ne "${RED}${GAP}"
+        else
+            echo -ne "${GREEN}${GAP}"
+        fi
+    done
+    echo
+    if (( year_index != $last_year_index )); then
+      echo
+    fi
+done
+
+# print spaces before last year
+gaps=$((columns - 1))
+squares=$((columns * 2))
+indent=$((gaps + squares - 4))
+for ((i=0; i<indent; i++)); do
+    echo -n ' '
+done
+
+last_year=$((birth_year + last_year_index))
+echo $last_year
+
+echo -e "\nHow are you going to spend these Sundays, $name?"
+

+ 3 - 0
setup.sh

@@ -17,3 +17,6 @@ cp "./nvim" "$HOME/.config/nvim/init.vim"
 
 # TMUX
 cp "./tmux.conf" "$HOME/.tmux.conf"
+
+# Scripts
+echo "bash $HOME/dots/life.sh 1993-07-21 control" >> "$HOME/.bashrc" && source "$HOME/.bashrc"