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

_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="83b70b7f706aced1dced5d0aec67e0b6ef7a7fee9fcb37135717eb7687868cd3
 1f6ad4edae6479aaace3112ede5279a23284ae54b2a34db66357aef5f64df160
 effaa4c257c1f25e6d2d50679e9b845eab36b346dea9ee26f4405da1a21e6428
 6d9dd76987968e8a0b30d3ae4d18b8139d6ddf6cd53409272dbc596654ea38b1
 39b7598b2ec30111d1ace82b274809e5d0930e241683c1c91f5b4c7e64a975cf
 fe4879b0cff2d33d7fb08d1c8ba4e0cad9f44843644fe284fda1e89addf9c4ab
 7ebace54eda35943062eaad9dd4f16de24390b672f31bff45475b82acb1955c0
 006464de19502bd49a72265058811665b62b823509bbbd2e7181ba87046b6b08
 8643ab571f547c6af0352a08e617ba7303965b2882ab9f36d61e8d4680761a59
 a0d642ace8f9d616a9c9cbbe46e188c60ddf7486b0cf2685a3558e06aba2c284
 9df627ec74a21f4da8df4821dba85cabcc452f95b636e8802eeaa2e6f3129e13
 59162ab2d67d39827e497beda03fbe6327d3535d2ee3b1dd7050fdeafe1f9c36
 804b3d311665a059140466fe142cc76cf14ef0695b7c4d3a174f7f8fba46b6e3
 7c22db8c8460ef62abffbb6d5c7b212507de0798a4a762fa2a005a8bc4c90fc6
 2db8def7863ea49b6ef69f353988d7e0f73a8646722e5946932740d76eb46b25
 23d90d18dae663b7d0dcdb4edd2f5087eecb40b00f046a1f46a9abf3ecb47651
 44cdabae7708de3548fdd78ed59cdbb1fedbca18e16644047ed4a23623a530ca
 63bc50fc2b88897096626cf9e835d4237ee0052f9bfd902dc1f5304c693c32e6
 5b4e8c53599ee79067a4439bfbf31bb3f1b40e93ac6493f718b48feaf972173d
 854c8cbf59e1fcc48f114408d93f63cad70c6ba8eefad5bf3071bd9dd8ef48f8
 0e58ff9c1f9378922b7f324fdba953929d88d61b36aedd80ee43964567b226cc
 f099f71bc240fb59ffeaba50d26206b32df7e54051e49d6837a1702e4d3b4f3f
 43ad0a4e238ad078300d0aa2ebca5f7aaf6ff2cdb25c5cfe8191b79aab7d0af2
 b631d34ab3e3e26aba7169b382d573d82bc6647d3ddae67e9ce28481f64715e7
 462b5490475fb8560dded4eb6cdd9cfd0049b800acee329094def095557d0ffd
 d83fb093e0e05a531cd6f19886a6ceb884a4fa5ea3b53cf099fc1f30c5b3e47d
 2e4adc97fefdfa2ad70a6e6e79bc0418acd401a305bcb5fcd848a84e03e35a74
 43ef3d73cadddea5be746e20c9f27fbaa59ceb106b8b26f7245ba2de2e46b1f6
 81c879e6a86dd6e6cb94d7a73322bf39f06b3294a727effb5a5bb5c7f9274fd6
 458b08f1216c18a46fc3e00701d6d171a4d536192b0885c041d8cc1befb6b44d
 1d00a1435638084174516975840854368a45ac30bb0bad2c0c49db713b5925f0
 e82418895a7036158baf9a425faea7de1fe332267b218341eec44c6b5071d1ad
 ed0d49911ae0caa1d625ae64832b49b4c94e90fa2ec0b1e5e7df440ccb28698b
 206ae23c386dcb84a2dfaca678af36123fbaff1fb402326021973485018467f3
 0156f309d942d9066a83005dd42588719a1755fb78e345e5f22ff582da46211b
 95e6ecaa5dfb9a96f27a6b6edc7be396fb6df30bc311a6f7e15cad56a30051c2
 47df94d3826a9f3e94b4c596a78f5baaddfb27f25bdb7906c5cf65caf8962eb2
 0407ab5ddd9f6a9af5f178d5fa1732cbf8275c4fe6e03793adbe48bfd6c04884
 59b5961b83f0fd64ef579099ca0209dd706d5025feac813c80fcc2d0648d717f
 9d55174210a512c6c9d0601532033d05d9e8817c760cb9ccca3c6c9c4ff6d7c1
 213ee24cda99ca84d0a8326de133e7e8b2baf9ba23659ce829f589f771d357d2
 cad9da572d25e3413f7a15a319d2f3c9e7e915ee016baa99e0d88fc08cf5b781
 8990ca82b481a02734cb96f46db789716735ca8f6c4bf89d800899a593a1f0ca
 ef552a3e638f25125c6ad4c51176a6adcdce295ab1d2ffacf0db060caf8c1582
 2a7fa12bf2b376307c9ca2501227b0d91dcae25c453ec095e5f768a2ca5b6fe9
 64a9519dd6b75179a9363f9c8a0cefe2984ec8578394ced66e9d0fffd2be922f
 1d011e82a59aec26bff5564ca90a8e51636364e5b7f79417708aa2c846c633b3
 e12f5ca02756268e794d06d9cb2ada93d021ec915f5a43ec2cd77355022f3624
 a57936d96aefb5cfff0660f3294210ee04705529af6cf811e2274b0923a03939
 5fdb97828e1a23fd28ea5ed0e7d15cdebb77ef079aaa48b93f1526764b40ef8c
 539dc64f089b189c5f14ee60df6368742cc63ccc3be753bd3c8bfba7632fe068
 5c6efd6fe2f2856d5294748dc751770d1c8889665f42687a0ac8f1b3a86a3299
 5c9b3035d45aabfe1fb3ce5e3028130043398cecc1409b20fe8273692192726e
 9c03e388d0ff2e0bc28be9bf6ab95f1e0260c5828b3159b18867a9e7a1f17f7b
 e28b31609d17fc50bdf9e6730c947a61b0e474af726c2c044c39bc78fcd9bfde
 2155e95e9c7b12d785dc589033290a8caff07c11cf1697ec3ad0bda37e3b0433
 4d6d7e8b91840bb2b18bc7ac427f979183e68b6b061db58b4139ad5679bdc36f
 c6d595ac9f7e0d6ac87c4c57e26c7515c544e8e5ac553c5a215394d12b201a8f
 910c51cb06ff3233daee1d045e606ed77c290ea25dd1a54378e0517601f4785c
 a047ac2e724c1614ef4350af83f35cd1d044d8d20e6477c319172b860b19329a
 4bc63bf0105c664e466e62cb2fd1c143b310877de93dc35b3b5d48e0e4cb6702
 11bb01a73894f932a3702551245aa0c57d121ebf59dd293fac5ceac81af822d1
 d52d97b66c4c5d6d9d99c88df55148faf39738f244485026f22f8e47407744f4
 d159c6f13291723f1821d1064a7d3e0933d96297d55bab27d76861472af68111
 e857b18a99701528f873275b6012792caf6e30c34c512ee92cda51520140054f
 c54f03f38fbf897f34235bc5989500361251f61220cf63afedd730edd221714e
 534bf0ffb311a993fd23666a7f3e4f4a0cfc0662abfa8b81594705cceefb69e3
 a13cf890ef10517c59e812ced167245f2db47d37d2b03c9fb43ddef023a3e776
 0a399b03565c577ae2da9f8362e6276b0adb13bac288e49fec085c517243e27b
 67bb8c729aedbe2e0258435c78e52bb1753618a1d3d7c0c94e6f1c47763a56a9
 7dfff6bb0e45143c33703c3fdf3ff77b00f3617fef29671c7ff6af166dcf31a0
 7f8c090da3b0eaa7108646bf34cbbb6ed13d5358a72460522108b06c7ecd716a"

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
	}
}
