summaryrefslogtreecommitdiffstats
path: root/roles/font/tasks
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/tasks
parent17c8e8198486d22ab3de510c984d96313475fe24 (diff)
Refactor google fonts download using font-family names
Diffstat (limited to 'roles/font/tasks')
-rw-r--r--roles/font/tasks/main.yml36
1 files changed, 27 insertions, 9 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"