R/zzz.R

Defines functions .onAttach

.onAttach <- function(libname, pkgname) {
  if (!interactive()) return(invisible())
  if (isTRUE(getOption("hal.quiet_startup", FALSE))) return(invisible())

art <- paste0(
  "\033[0;34m _   _       _", "\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800","\033[0;31m","\u2880\u28f4\u28f6\u28e6\u28f4\u28ff\u28f7\u28c6","\033[0m\n",
  "\033[0;34m| | | | __ _| |", "\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800","\033[0;31m","\u2800\u28b8\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u287f","\n",
  "\033[0;34m| |_| |/\033[0;31m _\033[0;34m` | |", "\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800","\033[0;31m","\u2800\u28bb\u28ff\u28ff\u28ff\u28ff\u287f\u2801","\n",
  "\033[0;34m|  _  | \033[0;31m(_|\033[0;34m | |___", "\u2800\u2800\u2800\u2800\u2800\u2800\u2800","\033[0;31m","\u2800\u283b\u28ff\u283f\u280b\u2800\u2800","\n",
  "\033[0;34m|_| |_|\\__,_|_____|","\u2800\u2800\u2800\u2800\u2800\u28a0\u2858\u2801\u2800\u2800\u2800\u2800","\n",
  "\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2806\u2800\u2807\u2800\u2800\u2800\u2800\u2800\n",
  "\u2800\u28e0\u28f4\u28f6\u28fe\u28b6\u2856\u2800","\033[0;34m","\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2838\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n",
  "\u28b0\u28ff\u28ff\u28ff\u2843\u2800\u2839\u2803\u2800\u2800\u2800\u2800\u2800\u2880\u28c4\u2800","\033[0;34m","\u2800\u2800\u2800\u2808\u2809\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n",
  "\u2838\u28ff\u28ff\u28ff\u28f7\u28e6\u2800\u2800\u2800\u2800\u2800\u28c0\u28f4\u28ff\u2841\u2800","\033[0;34m","\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n",
  "\u2800\u2819\u283f\u28ff\u283f\u281f\u280b\u28c0\u28e4\u28fe\u283f\u280b\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n",
  "\u2800\u28a0\u28fe\u2857\u2820\u2840\u2819\u285f\u2809\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n",
  "\u2800\u2888\u28ff\u28a0\u28fe\u2800\u2800\u2800\u2800\u2800\u2800\u2800")

  ver <- utils::packageVersion("hal")
  backend <- tryCatch(.hal_backend(), error = function(e) "copilot")

  # ANSI: 34=blue, 31=red, 33=yellow, 36=cyan, 0=reset
  status <- paste0(
    "\033[0;33m  v", ver, "\033[0m  -  ",
    "\033[1;35m\"One Armed Scissor\"\033[0m"
  )

  packageStartupMessage(art)
  packageStartupMessage(status)
}

#cat("\033[1;31mS\033[0m\033[1;32mo\033[0m\033[1;33mu\033[0m\033[1;34mn\033[0m\033[1;35md \033[0m\033[1;36mE\033[0m\033[1;31mf\033[0m\033[1;32mf\033[0m\033[1;33me\033[0m\033[1;34mc\033[0m\033[1;35mt\033[0m\033[1;36ms \033[0m\033[1;31ma\033[0m\033[1;32mn\033[0m\033[1;33md\033[0m\033[1;34m O\033[0m\033[1;35mv\033[0m\033[1;36me\033[0m\033[1;31mr\033[0m\033[1;32md\033[0m\033[1;33mr\033[0m\033[1;34ma\033[0m\033[1;35mm\033[0m\033[1;36ma\033[0m\033[1;31mt\033[0m\033[1;32mi\033[0m\033[1;33mc\033[0m\033[1;34ms\033[0m\n")

Try the hal package in your browser

Any scripts or data that you put into this service are public.

hal documentation built on Oct. 6, 2026, 5:07 p.m.