#!/usr/bin/env bash set -e # Generate documentation from Casks # This script parses .rb files in Casks/ and updates docs/index.html SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(dirname "$SCRIPT_DIR")" CASKS_DIR="$ROOT_DIR/Casks" DOCS_DIR="$ROOT_DIR/docs" INDEX_FILE="$DOCS_DIR/index.html" TEMP_FILE="$DOCS_DIR/casks_temp.html" # Get metadata for a cask get_icon() { case "$1" in kportal) echo "fa-ship" ;; lolcathost) echo "fa-cat" ;; semver-generator) echo "fa-code-branch" ;; graphql-monitoring-proxy) echo "fa-chart-line" ;; *) echo "fa-cube" ;; esac } get_colors() { case "$1" in kportal) echo "from-blue-500 to-purple-600" ;; lolcathost) echo "from-pink-500 to-purple-600" ;; semver-generator) echo "from-emerald-500 to-teal-600" ;; graphql-monitoring-proxy) echo "from-rose-500 to-orange-600" ;; *) echo "from-gray-500 to-gray-600" ;; esac } get_tag1() { case "$1" in kportal) echo "Kubernetes" ;; lolcathost) echo "Hosts" ;; semver-generator) echo "Git" ;; graphql-monitoring-proxy) echo "GraphQL" ;; *) echo "CLI" ;; esac } get_tag1_color() { case "$1" in kportal) echo "blue" ;; lolcathost) echo "pink" ;; semver-generator) echo "emerald" ;; graphql-monitoring-proxy) echo "rose" ;; *) echo "gray" ;; esac } get_tag2() { case "$1" in kportal) echo "TUI" ;; lolcathost) echo "TUI" ;; semver-generator) echo "Versioning" ;; graphql-monitoring-proxy) echo "Monitoring" ;; *) echo "" ;; esac } get_tag2_color() { case "$1" in kportal) echo "purple" ;; lolcathost) echo "purple" ;; semver-generator) echo "teal" ;; graphql-monitoring-proxy) echo "orange" ;; *) echo "gray" ;; esac } get_docs_url() { case "$1" in kportal) echo "https://kportal.raczylo.com" ;; lolcathost) echo "https://lolcathost.raczylo.com" ;; graphql-monitoring-proxy) echo "https://graphql-monitoring-proxy.raczylo.com" ;; *) echo "" ;; esac } generate_cask_card() { local name="$1" local version="$2" local desc="$3" local icon=$(get_icon "$name") local colors=$(get_colors "$name") local tag1=$(get_tag1 "$name") local tag1_color=$(get_tag1_color "$name") local tag2=$(get_tag2 "$name") local tag2_color=$(get_tag2_color "$name") local docs_url=$(get_docs_url "$name") local github_url="https://github.com/lukaszraczylo/$name" local tags_html="${tag1}" if [ -n "$tag2" ]; then tags_html="$tags_html ${tag2}" fi local buttons_html="" if [ -n "$docs_url" ]; then buttons_html=" Docs GitHub " else buttons_html=" GitHub " fi cat << CARD_EOF
$desc
brew install --cask lukaszraczylo/taps/$name