# Template file for 'nerd-fonts'
pkgname=nerd-fonts
version=3.5.0
revision=1
create_wrksrc=yes
depends="nerd-fonts-ttf>=${version}_${revision}
 nerd-fonts-otf>=${version}_${revision}
 nerd-fonts-symbols-ttf>=${version}_${revision}"
short_desc="Iconic font aggregator collection"
maintainer="cinerea0 <cinerea0@protonmail.com>"
license="MIT"
homepage="https://nerdfonts.com"
changelog="https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/changelog.md"
distfiles="https://raw.githubusercontent.com/ryanoasis/nerd-fonts/v${version}/10-nerd-font-symbols.conf
 https://raw.githubusercontent.com/ryanoasis/nerd-fonts/v${version}/LICENSE"
nostrip=yes

_full_fonts=(
	'0xProto'
	'3270'
	'AdwaitaMono'
	'Agave'
	'AnonymousPro'
	'Arimo'
	'AtkinsonHyperlegibleMono'
	'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'
)
_symbol_font='NerdFontsSymbolsOnly'
_fonts=("${_full_fonts[@]}" "${_symbol_font}")

for f in "${_fonts[@]}"; do
	distfiles+=" https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${f}.tar.xz>${f}-${version}.tar.xz"
done

checksum="c686f822818bd1c4c26ccb1314d16b277e77252f97a74483ca20b2165dbf7ec6
 1f6ad4edae6479aaace3112ede5279a23284ae54b2a34db66357aef5f64df160
 b6cd12d383255548292c12fc3f8b03e197407d8299393fb27e351aba42224965
 41999d601d1fa41bc57c3e7e6050a137265d0f2d5770cf6218e4a2577df47ed3
 0c50b1ec676232a0c357419c5ba55bf1bba886da66de77b4d028794f0922cd44
 bc0f26d74c6b0c9d70f8b089fec29721979378f8d8e10ca751351ea4e4a72747
 48fe768a075cd4bb8bcdfaa76a1e769d3224ad851b766848562af03a2b4e359d
 9fdf073a946ebc4be1e122765fcd87c1e45951832f12100c8bba99bc7a4e1a63
 7a5e0110d25390b07082cd0361794c92c7afebd7e41427778ede62aecce5650f
 b2e8e343eba89f9a919abc4d4ea412d3aca0b4a0b333a1ec9ee223684c7d62d3
 74ee813120bcd0836bfc460a27c93013d9ae14f85d154b9f441056ce9bbba415
 56a9e35ede51a8b2f2ce0ab1754f35fabd48516f20de376055510e92ee6fd0c9
 f30f67f203f9da78df857ebe558321bdfd8fc313662c72fd9e9fef9d4f4c96e7
 f5a9cdde3d984c127b4ceb67c8bf5183064eb257549f7c929f3ea0c95d7f354d
 e91d9b8c6218892dff79ed93befdc2d0fcac8d33fbc20d22f933b9401332ccb4
 3c6550fe0b3877ea9ca27484af0c74e10aea73d155a9dc3250f11ff3dd4601cd
 35f8b7fb2279f790201433e71395e9225c2ef70a184eef75de8dbe53ea389239
 23cd2c9de4b88c14da09b5560b2c9679f9892ea41b334a46c16fe7dc1b0620c1
 c1d4e7cbee20b9e55d2481762bbb8413124fda224cee26863b805fe2f863aaec
 7e029c49d6dabac0c64d80dae16eb3a0d8af79d709fa4c19ea63e4079403cf10
 ac98553484087191417a8f19325be99e6e6f6bb9abb19de9c9fe0fc5f97cead7
 8c2cd61483ea1f63206fa4b63cb8b6e899ba9a9cbcad4fd7d573e4d781fa01ac
 47f928fa3a3931462546316332ef05c1d9953e24afa86d0841ecf3d18ee06c77
 d077fa8752484fd4240d7504b4ac97f30003e205d894f5528d804c4aa4b764c7
 8fcf1584ffdeb31e4dd1801ababe5aa50ab7a975a72e7d0c692de2855213ec2b
 32226dc81bb30ea421cdc49ba2134b93c2b43096992c829504a3004d2537420d
 d66833973f8331b7f8bfbf0cb1708765b86e1fe7fbe398c1c54f42f824969cc2
 f964b9760e1a6aed98578979efaefadc40c2c7031bc4c90a65d14b4e26e15dcd
 df35a387d47558fd2fe2fb67779077721f841babaf4849aaa9e6df36c870310c
 82691235b83c2224b4f5b04fe6cc546bece8f2c4b2224688c93e4988a502ce5c
 49a620c7d33c49dad17717a26de9d9ad40562329395faab0532f1545318a4714
 0aecbe5f5422798e6d70463ec978f192562f4cf62eb991ee2320da660c31a86d
 7529d1bafdff0c9d5105cb9e2982c7f83e93f52053accc881460c69930c1507b
 a0d09a75096117f9fecfbd248499c9be37d56fb45f51446eb656ddc64f1fdae8
 d7f7440e79881a67f95ff2dc6e914a6e669bcc9393206db79f06671eeac0e4ee
 cdc1184dcab10037790148c99b0e7906c68aa89a1245560567ae16001a0c5b20
 dc4a72c9da3e92ef7fbf288640ee0d59aac5f3984cf601b6bb1ad6b7ea496b30
 fee026067395d636a96afe5132e92e9425bac92643906c6b7e9a63ed187dbeea
 989f6bd8907e5316fab8cecaa730d843495f6a181cc8ef638e5caab6df1c6f73
 f423d8109943b7a9e7155bb8ce049ab6956851001b402dba22144edfdefafe20
 b43fcd131673852bf9fbcca4a553455c8d14c161eda4fc78b52fafb3ed73cf4a
 27027f7c31866b9d96edfdcf15b72fec19ede01ec29f03861c292c0df21a20bb
 9f358f1cdf759b10a84a19f19703cd06c34ac9c24fc2448704943417b357c25d
 0227b220360a6f819b9ead92343e8112b34733054782561af50cfba1e8afab63
 59a333d4e68ae9c1f97c387ae9b7fda4bf48ba2d17c837dd1b143644f3cca365
 44bd4028f524910af4206af32df981d57c8d8b1b883a1f7f0b02dd880174d9e1
 d1344023201efb42a9d856279480448dd515786b9e61add02977150858268c6a
 0c3b003f5f61e8ad685e34994eb4b219c68f4d797d337933c66c01813786c9cf
 24cfe8148aeb600891f1d81180e77ecc967a814cde75dc7e63ec5bc2b0ab3eef
 bc34fd1998deee7105573e4604ca3fc3d568c1549fc6035c53981eba4160c0dc
 1a0b9ba4a504f6a6547069938b9deb8c2a2e8dbf0704102a2e5c3248cf2d28ed
 3e1f449f091eed114a8f85f3cf4ba4d445a4071081323a3b63c1abcf47a2ae58
 52a7c186e161a818232d9ad2f50bcbaea3fb4d6e7c844f2aa16b756a7e762e46
 d29113599e7db96ada593ab7ac6701d235706da063c0c69de654bdeab930108a
 4d81167a7000592d7c667c4ff05169c306d134d47f5b115c60655b1fc574fae9
 6495efd107d4a9e5c1158c2db5ad65b3973fb8c6f78044990e20c6f78e26b0e2
 687e60db0a4d27cc111070d7b6aff2ed919e129f25e8789709d76f60ab627059
 fa30a93281b412176af699b231b6dadf6313835bb9ea986bf977d04676afe07f
 4d94d11f6471747f76bddc78ec3d877edf50e96e5700a23284b436361e0380af
 e3ed0f6107bcfc1bf8599f2d54e97978e01050982b36533f2ed880567672df31
 8cae18d31d25293099d8429de177fc1f1ccaae7a694836304990b4dd20fc27ab
 5a5a88e17324ff1e2e39983f938439b9297887ae66a9710547b8065c9132b8b1
 876deff02b4f21c4ba02da1dbf2c384e1d6113326ea777e7537d2a54029da3e6
 19695ebda56e17762a08e50de3fb6a1ee03a9b7658abe37e7ff33f0a9862e845
 7d9478d61b65f9c91aabf8349b5fe17693f464b0845fcc571fbb1312e711f5ae
 277ce05aba5482769a4568a2a0dc8b6a6acbb619ed97ea0d91617eabbdad7111
 558f2b2eafb0954a54e73e04b8c3c9ca014fecd5583a2ccdfc1fc401c58d25c1
 e90f9a753ed4ba6266dbb59c2383885b568985514060917029f90e48606bbd2c
 256b5b22ead7eb3127461a474cab7e5c3b6321cf2d8f0257e606709ef5b57eec
 37f46ec119b6ea329dabefbc20ce76428d290fe5a12f29f54ff037bdf5803514
 766faa962afb588e49063d130cb67925fc4f6288fe84925a2b470179650e4718
 b7ef2283462b435f1fe91d729dc412d5dbe34269dd2c7f4e1d803e4105c8d883"

do_extract() {
	vsrccopy 10-nerd-font-symbols.conf "${wrksrc}"
	vsrccopy LICENSE "${wrksrc}"
	for f in "${_fonts[@]}"; do
		vsrcextract --no-strip-components -C "${wrksrc}/${f}" "${f}-${version}.tar.xz"
	done
}

do_install() {
	vmkdir usr/share/fonts/NerdFonts/otf
	vmkdir usr/share/fonts/NerdFonts/ttf/symbols

	for family in "${_full_fonts[@]}"; do
		for type in otf ttf; do
			_f_arr=( ${family}/*.${type} )
			if [ ${#_f_arr[@]} -gt 1 ]; then
				for f in "${_f_arr[@]}"; do
					vinstall "${f}" 644 "/usr/share/fonts/NerdFonts/${type}"
				done
			fi
		done
	done

	for f in ${_symbol_font}/*.ttf; do
		vinstall "${f}" 644 usr/share/fonts/NerdFonts/ttf/symbols
	done
	vinstall 10-nerd-font-symbols.conf 644 usr/share/fontconfig/conf.avail

	vlicense LICENSE
}

nerd-fonts-symbols-ttf_package() {
	short_desc+=" - TTF symbols-only font"
	font_dirs="/usr/share/fonts/NerdFonts/ttf/symbols"
	depends="font-util"
	nostrip=yes
	pkg_install() {
		vmove usr/share/fonts/NerdFonts/ttf/symbols
		vmove usr/share/fontconfig/conf.avail
	}
}

nerd-fonts-otf_package() {
	short_desc+=" - OTF fonts"
	font_dirs="/usr/share/fonts/NerdFonts/otf"
	depends="font-util"
	nostrip=yes
	pkg_install() {
		vmove usr/share/fonts/NerdFonts/otf
	}
}

nerd-fonts-ttf_package() {
	short_desc+=" - TTF fonts"
	font_dirs="/usr/share/fonts/NerdFonts/ttf"
	depends="font-util nerd-fonts-symbols-ttf"
	nostrip=yes
	pkg_install() {
		vmove usr/share/fonts/NerdFonts/ttf
	}
}
