diff --git a/hooks/autolink.py b/hooks/autolink.py index 5515d5c..1d5880b 100644 --- a/hooks/autolink.py +++ b/hooks/autolink.py @@ -3,6 +3,13 @@ import os from lib import arch, common, make, pkgcomposer +def do(f): + try: + f() + except: + pass + + def is_abslink(path): try: return os.readlink(path).startswith("/") @@ -51,36 +58,19 @@ def autolink_milestones(): if i.is_file() and os.access(i.path, os.F_OK): make.link(f"share/milestones/{i.name}", "/share/milestones/" + i.name) +def autolink_fonts(): + for i in common.treedir("share/fonts"): + if i.is_file() and os.access(i.path, os.F_OK): + make.link(f"share/fonts/{i.name}", "/share/fonts/" + i.name) + def autolink(composer: pkgcomposer.PkgComposer): os.chdir(composer.workdir + "/bundle/") - try: - autolink_bin() - except: - pass - - try: - autolink_lib() - except: - pass - - try: - autolink_include() - except: - pass - - try: - autolink_share_pkgconfig() - except: - pass - - try: - autolink_services() - except: - pass - - try: - autolink_milestones() - except: - pass + do(autolink_bin) + do(autolink_lib) + do(autolink_include) + do(autolink_share_pkgconfig) + do(autolink_services) + do(autolink_milestones) + do(autolink_fonts) diff --git a/packages/FiraMono-Fonts/pkgbuild.py b/packages/FiraMono-Fonts/pkgbuild.py new file mode 100644 index 0000000..96f1039 --- /dev/null +++ b/packages/FiraMono-Fonts/pkgbuild.py @@ -0,0 +1,35 @@ +import os + +from lib.make import * + +upstream_version = "3.206" + +version(upstream_version) +description("Monospaced variant of the Fira Sans font series") +maintainer("sisungo ") +source_url("https://carrois.com/downloads/Fira/Fira_Mono_3_2.zip") + + +def build(): + os.chdir("Fonts/FiraMono_OTF_32") + +on_build(build) + + +def declare_seperate(name): + def pack(composer): + composer.makedirs("share/fonts/FiraMono") + composer.add(f"{name}.otf", f"share/fonts/FiraMono/{name}.otf") + + package(name) + on_pack(pack) + +declare_seperate("FiraMono-Bold") +declare_seperate("FiraMono-Medium") +declare_seperate("FiraMono-Regular") + +package("FiraMono-Fonts") +dep("FiraMono-Bold") +dep("FiraMono-Medium") +dep("FiraMono-Regular") +on_pack(lambda x: print("Packing FiraMono-Fonts.")) diff --git a/packages/FiraSans-Fonts/pkgbuild.py b/packages/FiraSans-Fonts/pkgbuild.py new file mode 100644 index 0000000..e70d6ec --- /dev/null +++ b/packages/FiraSans-Fonts/pkgbuild.py @@ -0,0 +1,60 @@ +import os + +from lib.make import * + +upstream_version = "4.301" + +version(upstream_version) +description("a humanist sans-serif typeface designed by Carrois Type Design and Mozilla") +maintainer("sisungo ") +source_url("https://carrois.com/downloads/Fira/Download_Folder_FiraSans_4301.zip") + + +widths = ["Compressed", "Condensed", "Normal"] +styles = ["Italic", "Roman"] +weights = ["Bold", "Book", "Eight", "ExtraBold", "ExtraLight", "Four", "Hair", "Heavy", "", "Light", "Medium", "SemiBold", "Thin", "Two", "Ultra", "UltraLight"] + + +def find_file(width, style, weight): + modify = width + if width == "Normal": + modify = "" + filename = f"FiraSans{modify}-{weight}{style}.otf" + if os.path.exists(f"{width}/{style}/{filename}"): + return filename + return None + +def on_pack_by(width, style, weight): + def pack(composer): + composer.makedirs("share/fonts/FiraSans") + filename = find_file(width, style, weight) + composer.add( + f"{width}/{style}/{filename}", + f"share/fonts/FiraSans/{filename}", + ) + on_pack(pack) + + +def build(): + filename_version = upstream_version.replace('.', '') + os.chdir(f"Download_Folder_FiraSans_{filename_version}/Fonts/Fira_Sans_OTF_{filename_version}") + + packages = [] + for width in widths: + for style in styles: + for weight in weights: + filename = find_file(width, style, weight) + if filename: + pkgname = filename.replace(".otf", "") + package(pkgname) + arch_any() + on_pack_by(width, style, weight) + packages += [pkgname] + + package("FiraSans-Fonts") + arch_any() + for pkgname in packages: + dep(f"{pkgname} (same-version) @any") + on_pack(lambda x: print("Packing FiraSans-Fonts.")) + +on_build(build)