Skip to content

fontロールとしてHackGenをインストールする #55

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Feb 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .ansible-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
use_default_rules: true

skip_list:
- git-latest

# デフォルトパターンに加えて大文字のアンダースコア区切りも許容したい
var_naming_pattern: "^[a-z_][a-z0-9_]*$|[A-Z][A-Z0-9_]*$"
6 changes: 6 additions & 0 deletions roles/fonts/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---

FONT_INSTALL_RICTY: false
FONT_INSTALL_SYMBOLA: false

FONT_HACKGEN_VERSION: "v2.8.0"
2 changes: 1 addition & 1 deletion roles/fonts/meta/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---

dependencies:
- git
- role: git
14 changes: 14 additions & 0 deletions roles/fonts/tasks/hackgen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---

- name: Download hackgen
ansible.builtin.get_url:
url: https://github.com/yuru7/HackGen/releases/download/{{ FONT_HACKGEN_VERSION }}/HackGen_{{ FONT_HACKGEN_VERSION }}.zip
dest: /tmp/hackgen.zip
mode: '0644'

- name: Unarchive font file
ansible.builtin.unarchive:
src: /tmp/hackgen.zip
dest: ~/.fonts/
remote_src: yes
extra_opts: "-j"
29 changes: 8 additions & 21 deletions roles/fonts/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,13 @@
---

- name: fonts | check if ricty regular fonts are installed
stat:
path: "{{ ansible_env.HOME }}/.fonts/Ricty-Regular.ttf"
register: rr

- name: fonts | check if ricty bold fonts are installed
stat:
path: "{{ ansible_env.HOME }}/.fonts/Ricty-Bold.ttf"
register: rb
- name: Install Ricty
ansible.builtin.include_tasks: ricty.yml
when: FONT_INSTALL_RICTY|bool

- name: fonts | check if ricty discord regular fonts are installed
stat:
path: "{{ ansible_env.HOME }}/.fonts/RictyDiscord-Regular.ttf"
register: rdr
- name: Install Symbola
ansible.builtin.include_tasks: symbola.yml
when: FONT_INSTALL_RICTY|bool

- name: fonts | check if ricty discord bold fonts are installed
stat:
path: "{{ ansible_env.HOME }}/.fonts/RictyDiscord-Bold.ttf"
register: rdb

- include: ricty.yml
when: not rr.stat.exists or not rb.stat.exists or not rdr.stat.exists or not rdb.stat.exists

- include: symbola.yml
- name: Install HackGen
ansible.builtin.include_tasks: hackgen.yml
58 changes: 36 additions & 22 deletions roles/fonts/tasks/ricty.yml
Original file line number Diff line number Diff line change
@@ -1,46 +1,51 @@
---

- name: fonts | create work dir
tempfile:
- name: Create work dir
ansible.builtin.tempfile:
state: directory
register: workdir

- name: fonts | install required package
- name: Install required package
become: yes
apt:
ansible.builtin.apt:
name: fontforge

- name: fonts | download ricty generator script
get_url:
- name: Download ricty generator script
ansible.builtin.get_url:
url: "{{ item.src }}"
dest: "{{ workdir.path }}/{{ item.dest }}"
mode: "0644"
with_items:
- { src: 'https://rictyfonts.github.io/files/ricty_generator.sh', dest: 'ricty_generator.sh' }

- name: fonts | clone migu fonts into local
get_url:
- name: Clone migu fonts into local
ansible.builtin.get_url:
url: "https://ja.osdn.net/frs/redir.php?m=jaist&f=mix-mplus-ipa%2F63545%2Fmigu-1m-20150712.zip"
dest: "{{ workdir.path }}/migu-1m.zip"
mode: "0644"

- name: fonts | clone inconsolata fonts into local
get_url:
- name: Clone inconsolata fonts into local
ansible.builtin.get_url:
url: "{{ item.src }}"
dest: "{{ workdir.path }}/{{ item.dest }}"
mode: "0644"
with_items:
- { src: "https://github.com/google/fonts/raw/main/ofl/inconsolata/static/Inconsolata-Regular.ttf", dest: 'Inconsolata-Regular.ttf' }
- { src: "https://github.com/google/fonts/raw/main/ofl/inconsolata/static/Inconsolata-Bold.ttf", dest: 'Inconsolata-Bold.ttf' }

- name: fonts | unarchive migu fonts
unarchive:
- name: Unarchive migu fonts
ansible.builtin.unarchive:
src: "{{ workdir.path }}/migu-1m.zip"
dest: "{{ workdir.path }}"
copy: no
mode: "0644"

- name: fonts | copy migu fonts
copy:
- name: Copy migu fonts
ansible.builtin.copy:
src: "{{ workdir.path }}/{{ item.src }}"
dest: "{{ workdir.path }}/{{ item.dest }}"
remote_src: true
mode: "0644"
with_items:
# yamllint disable rule:commas
- { src: "migu-1m-20150712/migu-1m-regular.ttf", dest: "migu-1m-regular.ttf" }
Expand All @@ -49,17 +54,26 @@
# generator require ttf in same directory:
# Inconsolata-Regular.ttf, Inconsolata-Bold.ttf,
# migu-1m-regular.ttf, migu-1m-bold.ttf
- name: fonts | run ricty generate script
shell: "cd {{ workdir.path }} && sh ricty_generator.sh auto"
- name: Run ricty generate script
ansible.builtin.shell: "cd {{ workdir.path }} && sh ricty_generator.sh auto"
register: ricty_generator_script
changed_when: ricty_generator_script.rc != 0

- name: fonts | create font dir if not exist
file:
- name: Create font dir if not exist
ansible.builtin.file:
path: "{{ ansible_env.HOME }}/.fonts"
state: directory
mode: "0775"

- name: fonts | mv ricty fonts into fonts directory
shell: cp {{ workdir.path }}/Ricty*.ttf {{ ansible_env.HOME }}/.fonts
- name: Move ricty fonts into fonts directory
ansible.builtin.copy:
src: "{{ item }}"
dest: "{{ ansible_env.HOME }}/.fonts"
remote_src: yes
mode: "0644"
with_fileglob: "{{ workdir.path }}/Ricty*.ttf"

- name: fonts | update font cache
- name: Update font cache
become: yes
command: fc-cache -fv
ansible.builtin.command: fc-cache -fv
changed_when: true # 更新の有無を判断する方法がないので常に変更されることを想定する
9 changes: 5 additions & 4 deletions roles/fonts/tasks/symbola.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
---

- name: download symbola fonts
get_url:
- name: Download symbola fonts
ansible.builtin.get_url:
url: https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/Symbola.zip
dest: /tmp/symbola.zip
mode: "0644"

- name: unarchive zip file
unarchive:
- name: Unarchive zip file
ansible.builtin.unarchive:
src: /tmp/symbola.zip
dest: ~/.fonts/
remote_src: yes