# Template file for 'nerd-fonts'
pkgname=nerd-fonts
version=3.2.1
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"

_full_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'
)
_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="6601e431c5c43d80dfce375147b297df0b36bb4d465948f8f2178c1da89ace76
 1f6ad4edae6479aaace3112ede5279a23284ae54b2a34db66357aef5f64df160
 cf165059645c02212fbdb5a27858056772d12a762468a0971c5bed3de88d0427
 6168e416a4331e8d59d5436d9a3c8170f98ee044e2fe662cbf1d7bea612f927d
 c307d029f638a411834972569317a04b9d75e968a53b12e41c787db064a6bef7
 1e4b7f7c8528c9d43760eacdb5d423ad272f028cad5958e594a30486dce409d3
 20f3bc015e46e4fe9f57cfe495eaa167b796e047df4f98676fe16649aba4ffb8
 d71be5a39c772a58d2592e490784298753573ee47836633ade381f1eeee39c72
 432c4a9080038554a94a46f435cb1aca3d58e23deb445e5c39d2c740a9edac84
 5328418c755f076363e46960f311c734c0939167ab02eb718a8fb7bcc1bbd2e8
 5af79aaebec3aa474c801e48aa2cb901cf1e9c03cbb3b6c189fed439e867e6e9
 9672540e8707d221fe48fa5da49aec5a605b2d38a85c9fed959eb76990b33367
 45d29f5be8add78ae271550d542387f4c98bbbe62e395a3646bc67f66f9d3c5c
 dc0835a985f19491526fb5773ad7d9646bbdb962cda5076615b686427fb565dc
 173f5a8fe5bb0a4e7db61ac9a77e97c7b5071b9b2a9f8dbaf8432311518a5f4a
 b8f14c715bdcce4afafd9c4e57acba5b9d5c1c3357f054a505716187ae1e98b1
 c01665970a43c13b27ea1fb9c85055d9c2369b3f9f2d1b37c08ffeaad7830cb0
 6e7dd3ebdb82ee4a5b358801c082553692431e246c996dcbb3a737a28c78e4db
 b94bde4d2e9ceb1f2c19b2846c1a9892797e4e15e9594303eb7088534244a18b
 d3910065466618646baf9a621d385f8122c310e29d449462e5bd25bd300e0dd7
 d1ca4f8bae74e089775a9ba6b2015ee79e03ec0970e76499f56131499524efa4
 2d6db874195ac7ec4d9b396a9612e1e342b060d8aef0304b0b99c49c3b9a351d
 def4b29f7aa0620a7fa12edb28197a2697680b5e21636fa3dcc602e08ae13bc4
 c0224b12e3da90550bb1c42a9149346326ebbc9f41cf83a5e6c8944e57772bc5
 0f247f19afece755de1a1b7b2eae38d48023ce4436323ab51f571d38314c6c73
 44a4ce529f51dc5f067a10b851acd06a1dc7ea7d6af5ba8a420e057232c8d948
 7ab613fac9d5931bd32d8e5a438ae0cb17536317e171f28ee5ddb8a171941041
 89b9023f3f6d5e4b8040022ff29b36faee440cf49015fda163215c922569b5f3
 4fb0ff16a5e587e65f59e55d08283729de700f0c0bf682ec1bef18ab51264ada
 f6b8a6cfb0d06bd25e7653c2ac18a562f53f6143eb131195a5fca4dde30d6aa8
 23552caf1b6075858756de2e8f3a3fbb9799b478882f3f7afeefa8ca7f4601ae
 85b0b39b30a9ddd89462b0a7a732b461de04f667dc01a5e987bf0c2accbb576f
 97e2774a01a151fc2f711f018831d24777472daf0f2822230ce20a7ac227a041
 2c9f5a1117e1b5a640287081680837e7b870c94868627766483011ff0b80c3f7
 69e0a42a6e8072b2a084f09a5056e857e9b620afd57d7d07c8d1da2cf4809b41
 7a96f8cc30e57a426ffce3b844deb10d6325181b28df9b76735308f2d787dc2d
 a016b61e49c395c5b1e5bd2c919ae668724a33f2ef14da3becf932da401a080d
 1be123fa355a9acee79d19891c02499792f6a4e12ffa8973c6b1cb738465f337
 b5d5e7b26c76f1cfe97a697716fdd682b18faf9f73883915c2b0c2d9fcc48cf5
 3132ff085ce404a3c065054638f3dc68de27d07a5cc5379b90b2a248877971eb
 6cf8822bc1ca18e34b06578c7499f380c019e6ffc883eed26df5f498dfcc4006
 2282cb16651a377d5b084486a268189fdafd9067775f1f24ffaf5a36a2459501
 9d0ad55cbd83967ca93e940f4951d41b23a44c892d9a4788af460d71f8bb81a4
 a2720d1fbf7ebb51b6a0ab191de41d96c7594d61f02c582db2249ea30c1ce263
 62484ea8f66ae3b75610b89c5d3258f8610844fec6d8402239c27a5042dccc7d
 1abdaf5542b75a51d75de6373148a8e401b28eda88e6c90f243fb6114fd659ea
 e5d2e8180d5df1fe473b598edac5f67ce38b1d906248936eb386dd332a338346
 eb035bfb09043db2278dd6f95ca956a7cc42a3e6cc30910295c51555b2e8ff81
 c7a5ff556ff4aad5381e8a57e0d17d79c591e1267f0a9c271b09306ac4581aba
 eb3697dd13c5e50951023c0768538a2f70e1e4f22d94800a45779a6d1b49f7a3
 5c60700788b093e0bfb30b2f59b52397f3fdc2cdf2b6fb9307a58b61e7ddfe74
 4be621219ff5508c4176487b4fdc8cd0f6d8d8fceeb935f83df11a49dca3096f
 96d43a8c53173b992537a1d34ae984f65a8999b7c8991a02c17d4b77497581fa
 fcb796892b105c98ad05a29f184f09a02038970ff6a95f8cda082cd1b1b08cde
 fe3bd035d43b943de17e6e0da1dfb0bd1dcc1b319e10c5e5925ab70436d48385
 1a58c57b63f380441ea07d44780680844afe12dd299651b87db59f9f311702d1
 e5f7db6999bf6dd6501d8933575caab49827486ce774c6c35a6e411da8c6cfba
 3ccfd4d8d625c708e593e46ea0404536984f69f11c7a08b5a59eb9bbc9dfde3c
 dbcfa99f4d41f05e4b59eb2197873515c035eff1a68800bf0f43db471ef7ba57
 56a43a2729035f7fec17b68823a7db9ea06fcf9ec8d0b5e70d73ab79488a1b21
 b6b9d7c604cc55d2c6859ad098371dfbfe540eb2d5aab4faad21f81149659338
 658cc9506acf89b5f5dfc6b55eb9899b782dcf8d89f3d11c9abb2c4d52617f12
 21b43c2314614733f5e9b4b4f3117edc3986d2b0f2a33409b111cc38360e8391
 6a254d48c837974e7c43fb92124e8e057c1d4b31c9ebe635f5c562233a24f3ad
 2b678521c5c8a963ba2c8f7846e21df4323838c64d70d59cb1ff38124d7f7396
 3ef8c7ca298d5528cf4296298ab67d7c5c2ba00030735db4851cea8f52d8444a
 aa1b09dca861a306cd24c2c47fded88b63ae833ff0e815dad3642465583e300f
 2df9c9e54e5a2bc19c2ffd1df7ee283e02ba2e9a5fda1067b4884375ae4b0b7a
 b7a3eee24d2b0910f3a07705f1e053221d2535f07c5a13614c4dead2620e9978"

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"
	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"
	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"
	pkg_install() {
		vmove usr/share/fonts/NerdFonts/ttf
	}
}
