#!/usr/bin/env bash {{- if or (eq .host.distro.id "darwin") (eq .host.distro.family "linux") }} # @description Installs glow (a markdown renderer) from GitHub releases # @example installGlow installGlow() { # TODO: Add support for other architecture types if [ -d '/Applications' ] && [ -d '/Library' ] && [ -d '/Users' ]; then GLOW_DOWNLOAD_URL="https://github.com/charmbracelet/glow/releases/download/v1.4.1/glow_1.4.1_Darwin_x86_64.tar.gz" elif [ -f '/etc/ubuntu-release' ] || [ -f '/etc/debian_version' ] || [ -f '/etc/redhat-release' ] || [ -f '/etc/SuSE-release' ] || [ -f '/etc/arch-release' ] || [ -f '/etc/alpine-release' ]; then GLOW_DOWNLOAD_URL="https://github.com/charmbracelet/glow/releases/download/v1.4.1/glow_1.4.1_linux_x86_64.tar.gz" fi if type curl &> /dev/null; then if { [ -d '/Applications' ] && [ -d '/Library' ] && [ -d '/Users' ]; } || [ -f '/etc/ubuntu-release' ] || [ -f '/etc/debian_version' ] || [ -f '/etc/redhat-release' ] || [ -f '/etc/SuSE-release' ] || [ -f '/etc/arch-release' ] || [ -f '/etc/alpine-release' ]; then TMP="$(mktemp)" TMP_DIR="$(dirname "$TMP")" curl -sSL "$GLOW_DOWNLOAD_URL" > "$TMP" tar -xzf "$TMP" -C "$TMP_DIR" if [ -n "$HOME" ]; then if mkdir -p "$HOME/.local/bin" && mv "$TMP_DIR/glow" "$HOME/.local/bin/glow"; then GLOW_PATH="$HOME/.local/bin/glow" else GLOW_PATH="$(dirname "${BASH_SOURCE[0]}")/glow" mv "$TMP_DIR/gum" "$GLOW_PATH" fi chmod +x "$GLOW_PATH" else echo "WARNING: The HOME environment variable is not set! (Glow)" fi else echo "WARNING: Unable to detect system type. (Glow)" fi fi } # @description Installs gum (a logging CLI) from GitHub releases # @example installGum installGum() { # TODO: Add support for other architecture types if [ -d '/Applications' ] && [ -d '/Library' ] && [ -d '/Users' ]; then GUM_DOWNLOAD_URL="https://github.com/charmbracelet/gum/releases/download/v0.4.0/gum_0.4.0_Darwin_x86_64.tar.gz" elif [ -f '/etc/ubuntu-release' ] || [ -f '/etc/debian_version' ] || [ -f '/etc/redhat-release' ] || [ -f '/etc/SuSE-release' ] || [ -f '/etc/arch-release' ] || [ -f '/etc/alpine-release' ]; then GUM_DOWNLOAD_URL="https://github.com/charmbracelet/gum/releases/download/v0.4.0/gum_0.4.0_linux_x86_64.tar.gz" fi if type curl &> /dev/null; then if { [ -d '/Applications' ] && [ -d '/Library' ] && [ -d '/Users' ]; } || [ -f '/etc/ubuntu-release' ] || [ -f '/etc/debian_version' ] || [ -f '/etc/redhat-release' ] || [ -f '/etc/SuSE-release' ] || [ -f '/etc/arch-release' ] || [ -f '/etc/alpine-release' ]; then TMP="$(mktemp)" TMP_DIR="$(dirname "$TMP")" curl -sSL "$GUM_DOWNLOAD_URL" > "$TMP" tar -xzf "$TMP" -C "$TMP_DIR" if [ -n "$HOME" ]; then if mkdir -p "$HOME/.local/bin" && mv "$TMP_DIR/gum" "$HOME/.local/bin/gum"; then GUM_PATH="$HOME/.local/bin/gum" else GUM_PATH="$(dirname "${BASH_SOURCE[0]}")/gum" mv "$TMP_DIR/gum" "$GLOW_PATH" fi chmod +x "$GUM_PATH" else echo "WARNING: The HOME environment variable is not set! (Gum)" fi else echo "WARNING: Unable to detect system type. (Gum)" fi fi } echo "Ensuring Gum and Glow are installed (for logging)" installGlow & installGum & wait {{- end }}