diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-04-01 18:26:57 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-04-01 18:45:55 +0200 |
| commit | de9dbee2a3ce3ee94df9a8a566935ecc5310255f (patch) | |
| tree | 1f7da21922e0c84b583843369e40655cffb01ce1 /roles/font/tasks | |
| parent | 17c8e8198486d22ab3de510c984d96313475fe24 (diff) | |
Refactor google fonts download using font-family names
Diffstat (limited to 'roles/font/tasks')
| -rw-r--r-- | roles/font/tasks/main.yml | 36 |
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" |
