this repo has no description
dotfiles
at main 105 lines 2.2 kB view raw
1#!/usr/bin/env bash 2 3# TODO: Build custom Recursive Code font? 4 5set -euo pipefail 6 7# shellcheck disable=SC2034 8DRY_RUN=0 # TODO 9# shellcheck disable=SC2034 10FORCE=0 # TODO 11 12NAME=${0##*/} 13VERSION="0.1.0" 14API_URL="https://api.github.com" 15REPO_OWNER="arrowtype" 16REPO_NAME="recursive" 17REPO_PATH="$REPO_OWNER/$REPO_NAME" 18FONT_DIR="${HOME}/.local/share/fonts/ttf/Recursive" 19TMPDIR=${TMPDIR:-/tmp} 20 21err() { 22 printf "%s\n" "$@" >&2 23} 24 25err "$NAME v$VERSION" 26 27curl() { 28 command curl \ 29 -sSLf \ 30 -H "User-Agent: $NAME/$VERSION" \ 31 "$@" 32} 33 34api() { 35 curl \ 36 -H "Accept: application/vnd.github+json" \ 37 "$@" 38} 39 40jq() { 41 command jq -c "$@" 42} 43 44get_latest_release() { 45 api --get "$API_URL/repos/$REPO_PATH/releases/latest" \ 46 | jq "$(cat <<QUERY 47. as \$parent | 48{ 49 id, 50 tag: .tag_name, 51 asset: first( 52 .assets[] | 53 select( 54 (.content_type == "application/zip") 55 and ( 56 (.name | contains(\$parent.tag_name)) 57 or (.name | contains(\$parent.tag_name | ltrimstr("v"))))) | 58 { 59 url, 60 download_url: .browser_download_url, 61 id, 62 name, 63 content_type 64 } 65 ) 66} 67QUERY 68)" 69} 70 71[[ -d "$FONT_DIR" ]] || mkdir -p "$FONT_DIR" 72 73latest_release=$(get_latest_release) 74rec_ver=$(jq -r '.tag | ltrimstr("v")' <<< "$latest_release") 75err "Latest version is $rec_ver" 76vf_file_name="Recursive_VF_${rec_ver}.ttf" 77file_url=$(jq -r '.asset.download_url' <<< "$latest_release") 78file_name=${file_url##*/} 79 80if [[ -f "${FONT_DIR}/${vf_file_name}" ]]; then 81 err "Latest Recursive font already installed" 82 exit 0 83fi 84 85dl_path="${TMPDIR}/${file_name}" 86if [[ -f "$dl_path" ]]; then 87 err "${dl_path} already exists, skipping download" 88else 89 err "Downloading ${file_url} to ${dl_path}" 90 curl -o "$dl_path" "$file_url" 91fi 92 93err "Deleting old font files" 94rm -f "$FONT_DIR/Recursive_VF_*.ttf" "$FONT_DIR/recursive-static-TTFs.ttc" 95 96err "Unzipping relevant files to $FONT_DIR" 97unzip -j "$dl_path" '*/Recursive_Desktop/Recursive_VF_*.ttf' '*/Recursive_Desktop/recursive-static-TTFs.ttc' -d "$FONT_DIR" 98err "Deleting zip file" 99rm -f "$dl_path" 100 101err "Writing version to file" 102echo "$rec_ver" > "$FONT_DIR/.VERSION" 103 104err "Running fc-cache" 105fc-cache