160 lines
2.7 KiB
Bash
160 lines
2.7 KiB
Bash
# Copyright 2023-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# Ebuild from https://data.gpo.zugaina.org/dm9pZCAq/media-fonts/nerd-fonts/
|
|
|
|
EAPI=8
|
|
|
|
inherit font
|
|
|
|
DESCRIPTION="Collection of fonts that are patched to include a high number of glyphs (icons)."
|
|
HOMEPAGE="https://www.nerdfonts.com/"
|
|
|
|
# curl -s https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest \
|
|
# | jq -r '.assets[].name | select(endswith(".tar.xz")) | split(".") | .[0] | select(test("(?i)symbolsonly") | not)'
|
|
FONTS=(
|
|
0xProto
|
|
3270
|
|
Agave
|
|
AnonymousPro
|
|
Arimo
|
|
AurulentSansMono
|
|
BigBlueTerminal
|
|
BitstreamVeraSansMono
|
|
CascadiaCode
|
|
CascadiaMono
|
|
CodeNewRoman
|
|
ComicShannsMono
|
|
CommitMono
|
|
Cousine
|
|
D2Coding
|
|
DaddyTimeMono
|
|
DejaVuSansMono
|
|
DepartureMono
|
|
DroidSansMono
|
|
EnvyCodeR
|
|
FantasqueSansMono
|
|
FiraCode
|
|
FiraMono
|
|
GeistMono
|
|
Go-Mono
|
|
Gohu
|
|
Hack
|
|
Hasklig
|
|
HeavyData
|
|
Hermit
|
|
iA-Writer
|
|
IBMPlexMono
|
|
Inconsolata
|
|
InconsolataGo
|
|
InconsolataLGC
|
|
IntelOneMono
|
|
Iosevka
|
|
IosevkaTerm
|
|
IosevkaTermSlab
|
|
JetBrainsMono
|
|
Lekton
|
|
LiberationMono
|
|
Lilex
|
|
MartianMono
|
|
Meslo
|
|
Monaspace
|
|
Monofur
|
|
Monoid
|
|
Mononoki
|
|
MPlus
|
|
Noto
|
|
OpenDyslexic
|
|
Overpass
|
|
ProFont
|
|
ProggyClean
|
|
Recursive
|
|
RobotoMono
|
|
ShareTechMono
|
|
SourceCodePro
|
|
SpaceMono
|
|
Terminus
|
|
Tinos
|
|
Ubuntu
|
|
UbuntuMono
|
|
UbuntuSans
|
|
VictorMono
|
|
ZedMono
|
|
)
|
|
|
|
iuse_src_uri() {
|
|
local iuse="${1:?}"
|
|
local name="${2:?}"
|
|
|
|
local uri_prefix="https://github.com/ryanoasis/${PN}/releases/download/v${PV}"
|
|
local ext=tar.xz
|
|
|
|
echo "${iuse,,}? (
|
|
${uri_prefix}/${name}.${ext}
|
|
-> ${PN}-${name}-${PV}.${ext}
|
|
)"
|
|
}
|
|
|
|
nerd_src_uri() {
|
|
for name; do
|
|
iuse_src_uri "${name,,}" "${name}"
|
|
done
|
|
}
|
|
|
|
SRC_URI="
|
|
$(iuse_src_uri symbols-only NerdFontsSymbolsOnly)
|
|
symbols-only? (
|
|
https://github.com/ryanoasis/${PN}/raw/v${PV}/10-nerd-font-symbols.conf
|
|
-> 10-nerd-font-symbols-${PV}.conf
|
|
)
|
|
|
|
$(nerd_src_uri "${FONTS[@]}")
|
|
"
|
|
|
|
S="${WORKDIR}"
|
|
FONT_S="${S}"
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 x86"
|
|
|
|
IUSE_FLAGS=(${FONTS[*],,})
|
|
# FIXME: `+hack` is workaround for: https://pkgcore.github.io/pkgcheck/man/pkgcheck.html#requiredusedefaults
|
|
IUSE="symbols-only +hack ${IUSE_FLAGS[*]}"
|
|
REQUIRED_USE="X? ( || ( ${IUSE_FLAGS[*]} ) )"
|
|
|
|
RDEPEND="media-libs/fontconfig"
|
|
|
|
src_unpack() {
|
|
default
|
|
|
|
use symbols-only && {
|
|
cp -v "${DISTDIR}/10-nerd-font-symbols-${PV}.conf" \
|
|
"${S}/10-nerd-font-symbols.conf"
|
|
|
|
FONT_CONF=(
|
|
"${S}/10-nerd-font-symbols.conf"
|
|
)
|
|
}
|
|
}
|
|
|
|
check_suffix() {
|
|
local dir="${1:?}" suffix="${2:?}" f=''
|
|
|
|
for f in "${dir}"/*."${suffix}"; do
|
|
[ -e "${f}" ] && return 0
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
src_install() {
|
|
FONT_SUFFIX=''
|
|
local suffixes=(ttf otf) suf=''
|
|
|
|
for suf in "${suffixes[@]}"; do
|
|
check_suffix "${S}" "${suf}" && FONT_SUFFIX+=" ${suf} "
|
|
done
|
|
|
|
font_src_install
|
|
}
|