summaryrefslogtreecommitdiffstats
path: root/roles/font
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-04-01 18:26:57 +0200
committerAhmed Abdelhalim <[email protected]>2026-04-01 18:45:55 +0200
commitde9dbee2a3ce3ee94df9a8a566935ecc5310255f (patch)
tree1f7da21922e0c84b583843369e40655cffb01ce1 /roles/font
parent17c8e8198486d22ab3de510c984d96313475fe24 (diff)
Refactor google fonts download using font-family names
Diffstat (limited to 'roles/font')
-rw-r--r--roles/font/tasks/main.yml36
-rw-r--r--roles/font/vars/archlinux.yml11
-rw-r--r--roles/font/vars/debian.yml2
3 files changed, 30 insertions, 19 deletions
diff --git a/roles/font/tasks/main.yml b/roles/font/tasks/main.yml
index 1626b2f4..f31df195 100644
--- a/roles/font/tasks/main.yml
+++ b/roles/font/tasks/main.yml
@@ -52,12 +52,30 @@
state: "directory"
mode: "0755"
-- name: "Install Google Fonts"
- become: true
- ansible.builtin.get_url:
- url: "{{ item.url }}"
- dest: "/usr/share/fonts/google-fonts/{{ item.dest }}"
- mode: "0644"
- loop: "{{ font_google_fonts }}"
- notify:
- - "Update font-cache"
+- name: "Install Google fonts"
+ when: "font_google_font_families | length > 0"
+ block:
+ - name: "Fetch Google Fonts file references"
+ ansible.builtin.uri:
+ url: "https://fonts.google.com/download/list?family={{ item | urlencode }}"
+ return_content: true
+ register: font_google_fonts_metadata
+ loop: "{{ font_google_font_families }}"
+
+ - name: "Parse Google Fonts file references"
+ vars:
+ font_response_json: "{{ item.content | regex_replace('^[^{]+', '') | from_json }}"
+ font_file_refs: "{{ font_response_json.manifest.fileRefs | default([]) }}"
+ ansible.builtin.set_fact:
+ font_google_font_files: "{{ font_google_font_files | default([]) + font_file_refs }}"
+ loop: "{{ font_google_fonts_metadata.results }}"
+
+ - name: "Install Google Fonts"
+ become: true
+ ansible.builtin.get_url:
+ url: "{{ item.url }}"
+ dest: "/usr/share/fonts/google-fonts/{{ item.filename }}"
+ mode: "0644"
+ loop: "{{ font_google_font_files | default([]) }}"
+ notify:
+ - "Update font-cache"
diff --git a/roles/font/vars/archlinux.yml b/roles/font/vars/archlinux.yml
index 597e73b2..2de675d6 100644
--- a/roles/font/vars/archlinux.yml
+++ b/roles/font/vars/archlinux.yml
@@ -5,15 +5,8 @@ font_packages:
- "noto-fonts"
- "noto-fonts-emoji"
-font_google_fonts:
- - url: "https://fonts.gstatic.com/s/ptsans/v18/jizaRExUiTo99u79P0WOxOGMMDQ.ttf"
- dest: "PTSans-Regular.ttf"
- - url: "https://fonts.gstatic.com/s/ptsans/v18/jizYRExUiTo99u79D0eEwMOJIDQA-g.ttf"
- dest: "PTSans-Italic.ttf"
- - url: "https://fonts.gstatic.com/s/ptsans/v18/jizfRExUiTo99u79B_mh4OmnLD0Z4zM.ttf"
- dest: "PTSans-Bold.ttf"
- - url: "https://fonts.gstatic.com/s/ptsans/v18/jizdRExUiTo99u79D0e8fOytKB8c8zMrig.ttf"
- dest: "PTSans-BoldItalic.ttf"
+font_google_font_families:
+ - "PT Sans"
font_presets:
- src: "/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf"
diff --git a/roles/font/vars/debian.yml b/roles/font/vars/debian.yml
index bb80b1a1..73714a56 100644
--- a/roles/font/vars/debian.yml
+++ b/roles/font/vars/debian.yml
@@ -8,7 +8,7 @@ font_packages:
- "fonts-noto-color-emoji"
- "fonts-noto-extra"
-font_google_fonts: []
+font_google_font_families: []
font_presets:
- src: "/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf"