Include Vicinae setup in workstation playbook for non-WSL2 systems Update flake.lock to newer nixpkgs revision
176 lines
5.4 KiB
YAML
176 lines
5.4 KiB
YAML
---
|
|
- name: Install Vicinae
|
|
block:
|
|
- name: Set Vicinae version
|
|
ansible.builtin.set_fact:
|
|
vicinae_version: "v0.15.6"
|
|
vicinae_appimage_commit: "13865b4c5"
|
|
|
|
- name: Set architecture-specific variables
|
|
ansible.builtin.set_fact:
|
|
vicinae_arch: "{{ 'x86_64' if ansible_architecture == 'x86_64' else ansible_architecture }}"
|
|
|
|
- name: Ensure /opt/vicinae directory exists
|
|
ansible.builtin.file:
|
|
path: "/opt/vicinae"
|
|
state: directory
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Download Vicinae AppImage
|
|
ansible.builtin.get_url:
|
|
url: "https://github.com/vicinaehq/vicinae/releases/download/{{ vicinae_version }}/Vicinae-{{ vicinae_appimage_commit }}-{{ vicinae_arch }}.AppImage"
|
|
dest: "/opt/vicinae/vicinae.AppImage"
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Remove old Vicinae binary if exists
|
|
ansible.builtin.file:
|
|
path: "/usr/local/bin/vicinae"
|
|
state: absent
|
|
become: true
|
|
|
|
- name: Create symlink to Vicinae AppImage
|
|
ansible.builtin.file:
|
|
src: "/opt/vicinae/vicinae.AppImage"
|
|
dest: "/usr/local/bin/vicinae"
|
|
state: link
|
|
become: true
|
|
|
|
- name: Create temporary directory for Vicinae assets download
|
|
ansible.builtin.tempfile:
|
|
state: directory
|
|
suffix: vicinae
|
|
register: vicinae_temp_dir
|
|
|
|
- name: Download Vicinae tarball for assets
|
|
ansible.builtin.get_url:
|
|
url: "https://github.com/vicinaehq/vicinae/releases/download/{{ vicinae_version }}/vicinae-linux-{{ vicinae_arch }}-{{ vicinae_version }}.tar.gz"
|
|
dest: "{{ vicinae_temp_dir.path }}/vicinae.tar.gz"
|
|
mode: "0644"
|
|
|
|
- name: Extract Vicinae tarball
|
|
ansible.builtin.unarchive:
|
|
src: "{{ vicinae_temp_dir.path }}/vicinae.tar.gz"
|
|
dest: "{{ vicinae_temp_dir.path }}"
|
|
remote_src: true
|
|
|
|
- name: Ensure systemd user directory exists
|
|
ansible.builtin.file:
|
|
path: "/usr/lib/systemd/user"
|
|
state: directory
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Copy systemd user service
|
|
ansible.builtin.copy:
|
|
src: "{{ vicinae_temp_dir.path }}/lib/systemd/user/vicinae.service"
|
|
dest: "/usr/lib/systemd/user/vicinae.service"
|
|
mode: "0644"
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Update systemd service to use AppImage
|
|
ansible.builtin.replace:
|
|
path: "/usr/lib/systemd/user/vicinae.service"
|
|
regexp: "ExecStart=.*"
|
|
replace: "ExecStart=/usr/local/bin/vicinae"
|
|
become: true
|
|
|
|
- name: Ensure applications directory exists
|
|
ansible.builtin.file:
|
|
path: "/usr/share/applications"
|
|
state: directory
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Copy desktop files
|
|
ansible.builtin.copy:
|
|
src: "{{ vicinae_temp_dir.path }}/share/applications/{{ item }}"
|
|
dest: "/usr/share/applications/{{ item }}"
|
|
mode: "0644"
|
|
remote_src: true
|
|
become: true
|
|
loop:
|
|
- vicinae.desktop
|
|
- vicinae-url-handler.desktop
|
|
|
|
- name: Update desktop files to use AppImage
|
|
ansible.builtin.replace:
|
|
path: "/usr/share/applications/{{ item }}"
|
|
regexp: "Exec=.*vicinae"
|
|
replace: "Exec=/usr/local/bin/vicinae"
|
|
become: true
|
|
loop:
|
|
- vicinae.desktop
|
|
- vicinae-url-handler.desktop
|
|
|
|
- name: Ensure Vicinae share directory exists
|
|
ansible.builtin.file:
|
|
path: "/usr/share/vicinae"
|
|
state: directory
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Copy Vicinae themes directory
|
|
ansible.builtin.copy:
|
|
src: "{{ vicinae_temp_dir.path }}/share/vicinae/themes/"
|
|
dest: "/usr/share/vicinae/themes/"
|
|
mode: "0644"
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Ensure hicolor icons directory exists
|
|
ansible.builtin.file:
|
|
path: "/usr/share/icons/hicolor/512x512/apps"
|
|
state: directory
|
|
mode: "0755"
|
|
become: true
|
|
|
|
- name: Copy Vicinae icon
|
|
ansible.builtin.copy:
|
|
src: "{{ vicinae_temp_dir.path }}/share/icons/hicolor/512x512/apps/vicinae.png"
|
|
dest: "/usr/share/icons/hicolor/512x512/apps/vicinae.png"
|
|
mode: "0644"
|
|
remote_src: true
|
|
become: true
|
|
|
|
- name: Update desktop database
|
|
ansible.builtin.command:
|
|
cmd: update-desktop-database /usr/share/applications
|
|
become: true
|
|
changed_when: false
|
|
|
|
- name: Update icon cache
|
|
ansible.builtin.command:
|
|
cmd: gtk-update-icon-cache /usr/share/icons/hicolor
|
|
become: true
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Clean up temporary directory
|
|
ansible.builtin.file:
|
|
path: "{{ vicinae_temp_dir.path }}"
|
|
state: absent
|
|
|
|
- name: Verify Vicinae installation
|
|
ansible.builtin.command:
|
|
cmd: /usr/local/bin/vicinae --version
|
|
register: vicinae_version_check
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Display installation result
|
|
ansible.builtin.debug:
|
|
msg: |
|
|
{% if vicinae_version_check.rc == 0 %}
|
|
✓ Vicinae AppImage installed successfully with all themes and assets!
|
|
Version: {{ vicinae_version_check.stdout }}
|
|
{% else %}
|
|
✗ Vicinae installation completed but version check failed.
|
|
This may be normal if --version flag is not supported.
|
|
Try running: vicinae
|
|
{% endif %}
|
|
tags:
|
|
- vicinae
|