123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- # Copyright 2023-2024 Gentoo Authors
- # Distributed under the terms of the GNU General Public License v2
- EAPI=8
- inherit font
- DESCRIPTION="Collection of fonts that are patched to include a high number of glyphs (icons)."
- HOMEPAGE="https://nerdfonts.com"
- LICENSE="MIT"
- SLOT="0"
- KEYWORDS="amd64 x86"
- # 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
- 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_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[*]} ) )"
- 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[@]}")
- "
- RDEPEND="media-libs/fontconfig"
- S="${WORKDIR}"
- FONT_S="${S}"
- 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
- }
|