sravan-overlay/media-fonts/nerd-fonts/nerd-fonts-9999.ebuild
2024-05-05 11:39:37 -04:00

168 lines
4.3 KiB
Bash

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit font check-reqs
# curl https://raw.githubusercontent.com/ryanoasis/nerd-fonts/v${PV}/bin/scripts/lib/fonts.json |
# jq --raw-output '.fonts[] | "\"\(.folderName):\(.licenseId)\""'
FONTS=(
"0xProto:OFL-1.1-no-RFN"
"3270:BSD-3-Clause"
"Agave:MIT"
"AnonymousPro:OFL-1.1-RFN"
"Arimo:Apache-2.0"
"AurulentSansMono:OFL-1.1-no-RFN"
"BigBlueTerminal:CC-BY-SA-4.0"
"BitstreamVeraSansMono:Bitstream-Vera"
"IBMPlexMono:OFL-1.1-RFN"
"CascadiaCode:OFL-1.1-RFN"
"CascadiaMono:OFL-1.1-RFN"
"CodeNewRoman:OFL-1.1-no-RFN"
"ComicShannsMono:MIT"
"CommitMono:OFL-1.1-no-RFN"
"Cousine:Apache-2.0"
"D2Coding:OFL-1.1-no-RFN"
"DaddyTimeMono:OFL-1.1-no-RFN"
"DejaVuSansMono:Bitstream-Vera"
"DroidSansMono:Apache-2.0"
"EnvyCodeR:OFL-1.1-RFN"
"FantasqueSansMono:OFL-1.1-no-RFN"
"FiraCode:OFL-1.1-no-RFN"
"FiraMono:OFL-1.1-no-RFN"
"GeistMono:OFL-1.1-no-RFN"
"Go-Mono:BSD-3-Clause-Clear"
"Gohu:WTFPL"
"Hack:Bitstream-Vera AND MIT"
"Hasklig:OFL-1.1-RFN"
"HeavyData:LicenseRef-VicFieger"
"Hermit:OFL-1.1-RFN"
"iA-Writer:OFL-1.1-RFN"
"Inconsolata:OFL-1.1-no-RFN"
"InconsolataGo:OFL-1.1-no-RFN"
"InconsolataLGC:OFL-1.1-no-RFN"
"IntelOneMono:OFL-1.1-RFN"
"Iosevka:OFL-1.1-no-RFN"
"IosevkaTerm:OFL-1.1-no-RFN"
"IosevkaTermSlab:OFL-1.1-no-RFN"
"JetBrainsMono:OFL-1.1-no-RFN"
"Lekton:OFL-1.1-no-RFN"
"LiberationMono:OFL-1.1-RFN"
"Lilex:OFL-1.1-no-RFN"
"MartianMono:OFL-1.1-no-RFN"
"Meslo:Apache-2.0"
"Monaspace:OFL-1.1-RFN"
"Monofur:LicenseRef-Monofur"
"Monoid:MIT OR OFL-1.1-no-RFN"
"Mononoki:OFL-1.1-RFN"
"MPlus:OFL-1.1-no-RFN"
"Noto:OFL-1.1-no-RFN"
"OpenDyslexic:Bitstream-Vera"
"Overpass:OFL-1.1-no-RFN or LGPL-2.1-only"
"ProFont:MIT"
"ProggyClean:MIT"
"Recursive:OFL-1.1-no-RFN"
"RobotoMono:Apache-2.0"
"ShareTechMono:OFL-1.1-RFN"
"SourceCodePro:OFL-1.1-RFN"
"SpaceMono:OFL-1.1-no-RFN"
"NerdFontsSymbolsOnly:MIT"
"Terminus:OFL-1.1-RFN"
"Tinos:Apache-2.0"
"Ubuntu:LicenseRef-UbuntuFont"
"UbuntuMono:LicenseRef-UbuntuFont"
"UbuntuSans:LicenseRef-UbuntuFont"
"VictorMono:OFL-1.1-no-RFN"
"ZedMono:OFL-1.1-no-RFN"
)
# translate licenses to gentoos names
gentoo_license() {
local name names
# bash shenanigans since we can't sed here
names="${1}"
names="${names// AND / }"
names="${names// OR / }"
names="${names// and / }"
names="${names// or / }"
for name in ${names}; do
case "$name" in
OFL-1.1*) echo OFL-1.1;;
BSD*) echo BSD;;
MIT) echo MIT;;
Apache-2.0) echo Apache-2.0;;
CC-BY-SA-4.0) echo CC-BY-SA-4.0;;
Bitstream-Vera) echo BitstreamVera;;
WTFPL) echo WTFPL-2;;
LicenseRef-VicFieger) echo Vic-Fieger-License;;
LicenseRef-Monofur) echo Monofur;;
LGPL-2.1*) echo LGPL-2.1;;
LicenseRef-UbuntuFont) echo UbuntuFontLicense-1.0;;
*) eqawarn "Unknown license: \"$1\"\nUpdate gentoo_license";;
esac
done
}
font_vars() {
local base_uri="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
local font name license
for font in "${FONTS[@]}"; do
name="${font%:*}"
license="${font#*:}"
FONT_SRC_URI+=" ${name,,}? ( ${base_uri}/${name}.tar.xz -> ${PN}-${name}.tar.xz )"
FONT_LICENSE+=" ${name,,}? ( $(gentoo_license "${license}") )"
FONT_IUSE+=" ${name,,}"
done
}
font_vars
DESCRIPTION="Nerd Fonts is a project that patches fonts with a high number of glyphs"
HOMEPAGE="https://www.nerdfonts.com/"
SRC_URI="${FONT_SRC_URI}"
S="${WORKDIR}"
FONT_S="${S}"
LICENSE="${FONT_LICENSE}"
IUSE="${FONT_IUSE}"
REQUIRED_USE="|| ( ${FONT_IUSE} )"
SLOT="0"
KEYWORDS="~amd64"
approx_fonts_disk_reqs() {
# all fonts combined need ~8G
# (according to portage "final size of build dir")
# let's assume that's distributed somewhat evenly
local avgsize font fontcount
avgsize=$(( 8000 / ${#FONTS[@]} ))
fontcount=0
for font in ${FONT_IUSE}; do
use "${font}" && fontcount=$(( fontcount + 1 ))
done
echo "$(( avgsize * fontcount ))M"
}
pkg_setup() {
CHECKREQS_DISK_BUILD="$(approx_fonts_disk_reqs)"
CHECKREQS_DISK_USR="${CHECKREQS_DISK_BUILD}"
check-reqs_pkg_setup
}
pkg_pretend() {
CHECKREQS_DISK_BUILD="$(approx_fonts_disk_reqs)"
CHECKREQS_DISK_USR="${CHECKREQS_DISK_BUILD}"
check-reqs_pkg_pretend
}
src_install() {
local suffix
for suffix in ttf otf; do
if ( find . -name "*.${suffix}" | read ); then
FONT_SUFFIX="${FONT_SUFFIX} ${suffix}"
fi
done
font_src_install
}