60 lines
1.5 KiB
YAML
60 lines
1.5 KiB
YAML
---
|
|
- name: Get latest release
|
|
uri:
|
|
url: https://api.github.com/repos/prusa3d/PrusaSlicer/releases/latest
|
|
return_content: true
|
|
register: prusa_slicer_release
|
|
|
|
- name: Create tarball tempfile
|
|
tempfile:
|
|
state: file
|
|
suffix: .tar.gz
|
|
register: prusa_slicer_tarball
|
|
|
|
- name: Select asset
|
|
set_fact:
|
|
prusa_slicer_asset: "{{ asset }}"
|
|
when: "asset.name | regex_search('PrusaSlicer-.*linux-x64-GTK3.*\\.tar\\.bz2$')"
|
|
loop: "{{ prusa_slicer_release.json.assets }}"
|
|
loop_control:
|
|
loop_var: asset
|
|
label: "{{ asset.name }}"
|
|
|
|
- name: Download release file
|
|
get_url:
|
|
url: "{{ prusa_slicer_asset.browser_download_url }}"
|
|
dest: "{{ prusa_slicer_tarball.path }}"
|
|
force: true
|
|
|
|
- name: Extract tarball
|
|
unarchive:
|
|
src: "{{ prusa_slicer_tarball.path }}"
|
|
dest: /opt
|
|
remote_src: true
|
|
|
|
- name: Remove tarball
|
|
ansible.builtin.file:
|
|
path: "{{ prusa_slicer_tarball.path }}"
|
|
state: absent
|
|
when: prusa_slicer_tarball.path is defined
|
|
|
|
- name: Create symlink
|
|
file:
|
|
src: "/opt/{{ prusa_slicer_directory }}"
|
|
dest: "/opt/PrusaSlicer"
|
|
state: link
|
|
vars:
|
|
prusa_slicer_directory: "{{ prusa_slicer_asset.name | regex_replace('\\.tar\\.bz2$', '') }}"
|
|
|
|
- name: Create applications directory
|
|
file:
|
|
path: /usr/local/share/applications/
|
|
state: directory
|
|
|
|
- name: Copy desktop files
|
|
copy:
|
|
src: "{{ item }}.desktop"
|
|
dest: /usr/local/share/applications/{{ item }}.desktop
|
|
loop:
|
|
- PrusaSlicer
|
|
- PrusaGcodeviewer
|