Implement easter egg for 20 years of grml.org
authorMichael Prokop <mika@grml.org>
Thu, 14 Sep 2023 15:00:44 +0000 (17:00 +0200)
committerMichael Prokop <mika@grml.org>
Thu, 14 Sep 2023 15:00:44 +0000 (17:00 +0200)
% whois grml.org | grep 'Creation Date'
Creation Date: 2003-09-16T13:09:06Z

Thanks: Christopher Bock for suggesting usage of lolcat

autoconfig
autoconfig.functions
grml-autoconfig

index b98e4ca..711deaa 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_DEBS='yes'             # check for bootoption debs for installing .debs
 CONFIG_DISPLAY_SSH_FINGERPRINTS='yes' # display SSH server key fingerprints
 CONFIG_DISTRI='yes'           # support some customization via bootoption distri
 CONFIG_DMRAID='yes'           # support for dmraid
+CONFIG_EASTEREGG='yes'        # easteregg
 CONFIG_EXTRACT='yes'          # specify which (only in combination with bootparam myconfig/netconfig useful)
 CONFIG_FINDDCSDIR='yes'       # search for a debs, config, scripts directory
 CONFIG_HOMEDIR='yes'          # check for persistent homedir option
index 0da044d..b7d694c 100755 (executable)
@@ -1992,5 +1992,32 @@ fi
 }
 # }}}
 
+# {{{ Easteregg (for 20 years grml.org)
+config_easteregg() {
+  current_date=$(date +%Y-%m-%d)
+  birthday="2023-09-16"
+  one_month_later=$(date -d "${current_date} + 1 month" +%Y-%m-%d)
+
+  einfo "You found the birthday easter egg!" ; eend 0
+
+  # nothing to be done if it's more than one month since $birthday
+  if ! [[ "${current_date}" == "${birthday}" || "${current_date}" == "${one_month_later}" ]]; then
+    return 0
+  fi
+
+  if [[ -x /bin/toilet && -x /usr/games/lolcat ]] ; then
+    visualize() { printf "%s\n" "$*" | toilet | /usr/games/lolcat ; }
+  elif [[ -x /bin/toilet ]] ; then
+    visualize() { printf "%s\n" "$*" | toilet ; }
+  else
+    visualize() { printf "%s\n" "$*" ; }
+  fi
+
+  visualize "   \o/   "
+  visualize "20 years"
+  visualize "grml.org"
+}
+# }}}
+
 ## END OF FILE #################################################################
 # vim:foldmethod=marker expandtab ai ft=zsh shiftwidth=2
index 6e71b4d..f341de6 100755 (executable)
@@ -146,6 +146,8 @@ checkvalue $CONFIG_BLANKING && config_blanking
 checkvalue $CONFIG_DEBOOTSTRAP && config_debootstrap
 
 checkvalue $CONFIG_XSTARTUP && config_x_startup
+
+checkvalue $CONFIG_EASTEREGG && config_easteregg
 # }}}
 
 # {{{ Re-enable signals