this repo has no description
dotfiles
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