75 lines
1.9 KiB
YAML
75 lines
1.9 KiB
YAML
- name: Stat Typora installation directory
|
|
ansible.builtin.stat:
|
|
path: /opt/typora
|
|
register: typora_installed_result
|
|
|
|
- name: Create Typora install directory
|
|
ansible.builtin.file:
|
|
path: /opt/typora
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: not typora_installed_result.stat.exists
|
|
|
|
- name: Download Typora Linux binary archive
|
|
ansible.builtin.get_url:
|
|
url: "{{ typora_archive_url }}"
|
|
dest: "{{ typora_archive }}"
|
|
mode: "0644"
|
|
timeout: 300
|
|
when: not typora_installed_result.stat.exists
|
|
|
|
- name: Extract Typora
|
|
ansible.builtin.unarchive:
|
|
src: "{{ typora_archive }}"
|
|
dest: /opt/typora
|
|
remote_src: true
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
when: not typora_installed_result.stat.exists
|
|
|
|
- name: Ensure Typora files are readable
|
|
ansible.builtin.file:
|
|
path: /opt/typora
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
recurse: true
|
|
when: not typora_installed_result.stat.exists
|
|
|
|
- name: Ensure system desktop application directory exists
|
|
ansible.builtin.file:
|
|
path: /usr/local/share/applications
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Create Typora launcher wrapper
|
|
ansible.builtin.copy:
|
|
dest: /usr/local/bin/typora
|
|
mode: "0755"
|
|
content: |
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cd /opt/typora/bin/Typora-linux-x64
|
|
exec /opt/typora/bin/Typora-linux-x64/Typora "$@"
|
|
when: not typora_installed_result.stat.exists
|
|
|
|
- name: Create Typora desktop launcher
|
|
ansible.builtin.copy:
|
|
dest: /usr/local/share/applications/typora.desktop
|
|
mode: "0644"
|
|
content: |
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Typora
|
|
Comment=Markdown editor
|
|
Exec=/usr/local/bin/typora %F
|
|
Terminal=false
|
|
Categories=Office;WordProcessor;TextEditor;
|
|
MimeType=text/markdown;text/x-markdown;
|
|
when: not typora_installed_result.stat.exists
|