summaryrefslogtreecommitdiffstats
path: root/roles/font/tasks/install-google-fonts.yml
blob: d287dce6c46713bd6394f74e64d84fcb913aaf26 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
- name: "Ensure Google Fonts directory exists"
  become: true
  ansible.builtin.file:
    path: "/usr/share/fonts/google-fonts"
    state: "directory"
    mode: "0755"

- 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 }}"
  no_log: "{{ ansible_verbosity == 0 }}"

- 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 }}"
  no_log: "{{ ansible_verbosity == 0 }}"

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