From 27ec180b7940d07ae6df334db370e100b56e3d2d Mon Sep 17 00:00:00 2001 From: Jakob Lechner Date: Thu, 7 Sep 2023 19:31:11 +0000 Subject: [PATCH] Use lightburn without docker --- .gitlab-ci.yml | 11 ++++ packer/ansible/playbook.yml | 4 ++ .../fablab/files/lightburn/lightburn.desktop | 9 --- .../roles/fablab/files/lightburn/lightburn.sh | 34 ---------- .../ansible/roles/fablab/tasks/lightburn.yml | 66 ------------------- packer/ansible/roles/fablab/tasks/main.yml | 3 - .../fablab/templates/lightburn/lightburn.j2 | 1 - packer/ansible/roles/lightburn/.gitignore | 1 + .../roles/lightburn/files/lightburn.desktop | 6 ++ .../ansible/roles/lightburn/tasks/devices.yml | 34 ++++++++++ .../ansible/roles/lightburn/tasks/install.yml | 13 ++++ packer/ansible/roles/lightburn/tasks/main.yml | 10 +++ 12 files changed, 79 insertions(+), 113 deletions(-) delete mode 100644 packer/ansible/roles/fablab/files/lightburn/lightburn.desktop delete mode 100755 packer/ansible/roles/fablab/files/lightburn/lightburn.sh delete mode 100644 packer/ansible/roles/fablab/tasks/lightburn.yml delete mode 100755 packer/ansible/roles/fablab/templates/lightburn/lightburn.j2 create mode 100644 packer/ansible/roles/lightburn/.gitignore create mode 100644 packer/ansible/roles/lightburn/files/lightburn.desktop create mode 100644 packer/ansible/roles/lightburn/tasks/devices.yml create mode 100644 packer/ansible/roles/lightburn/tasks/install.yml create mode 100644 packer/ansible/roles/lightburn/tasks/main.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c430cd6..77525ea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -66,6 +66,17 @@ security_scanner: tags: - fablab +lightburn-download: + stage: prepare + image: alpine + script: + - mkdir -p packer/ansible/roles/lightburn/files + - 'wget -O packer/ansible/roles/lightburn/files/lightburn.zip --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_SERVER_URL}/api/v4/projects/fablab%2Flightburn-patched/jobs/artifacts/main/download?job=patch-Linux64"' + artifacts: + paths: + - packer/ansible/roles/lightburn/files/lightburn.zip + expire_in: 4 hours + .squashfs_template: &squashfs_template image: $DOCKER_IMAGE_BUILDER stage: build diff --git a/packer/ansible/playbook.yml b/packer/ansible/playbook.yml index 8fb1adf..22db53b 100644 --- a/packer/ansible/playbook.yml +++ b/packer/ansible/playbook.yml @@ -11,6 +11,7 @@ - role: firefox - role: windowmanager - role: inkscape + - role: lightburn - role: fablab - role: hardware - role: docker @@ -109,3 +110,6 @@ Du hast Dich mit einem Gast-Account angemeldet. Alle Daten werden nach der Anmeldung gelöscht. Wenn Du Deine Daten dauerhaft speichern möchtest, lege Dir bitte einen Account an! + lightburn: + devices: + - https://raw.githubusercontent.com/fablab-nea/LaserKutter/main/lightburn/LaserKutter.lbdev diff --git a/packer/ansible/roles/fablab/files/lightburn/lightburn.desktop b/packer/ansible/roles/fablab/files/lightburn/lightburn.desktop deleted file mode 100644 index 90496bc..0000000 --- a/packer/ansible/roles/fablab/files/lightburn/lightburn.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=LightBurn -GenericName=LightBurn -Comment=Laser Cutter Job Control Application -Exec=x-terminal-emulator -e 'sudo /usr/local/bin/lightburn' -Icon=/usr/local/share/lightburn/lightburn.png -Terminal=false -Type=Application -Categories=Graphics diff --git a/packer/ansible/roles/fablab/files/lightburn/lightburn.sh b/packer/ansible/roles/fablab/files/lightburn/lightburn.sh deleted file mode 100755 index 5e84a58..0000000 --- a/packer/ansible/roles/fablab/files/lightburn/lightburn.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -. /etc/default/lightburn - -if [ ! -z "$SUDO_COMMAND" ] && [ "$SUDO_COMMAND" = "$0" ]; then - home="$(getent passwd "$SUDO_UID" | cut -d: -f6)" - export PUID="$SUDO_UID" - export PGID="$SUDO_GID" -else - home="$HOME" - export PUID=$(id -u) - export PGID=$(id -g) -fi - -config_dir="$home/.config/lightburn" - -mkdir -p "$config_dir" - -media="/media/$(id -un $PUID)" -if [ -e "$media" ]; then - media_volume="-v $media:/media" -fi - -docker run \ - --rm \ - -e PUID \ - -e PGID \ - -e DISPLAY \ - -v /tmp/.X11-unix/:/tmp/.X11-unix/ \ - -v $config_dir:/config/ \ - -v $home:/workdir/ \ - $media_volume \ - --network=none \ - "$LIGHTBURN_DOCKER_IMAGE" diff --git a/packer/ansible/roles/fablab/tasks/lightburn.yml b/packer/ansible/roles/fablab/tasks/lightburn.yml deleted file mode 100644 index 19f9386..0000000 --- a/packer/ansible/roles/fablab/tasks/lightburn.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -- file: - path: /usr/local/share/lightburn - state: directory - mode: "0755" - owner: root - group: root - -- name: copy icon - copy: - src: lightburn/lightburn.png - dest: /usr/local/share/lightburn/lightburn.png - owner: root - group: root - mode: "0644" - -- name: copy script - copy: - src: lightburn/lightburn.sh - dest: /usr/local/bin/lightburn - owner: root - group: root - mode: "0755" - -- name: add lightburn configuration - template: - src: lightburn/lightburn.j2 - dest: /etc/default/lightburn - owner: root - group: root - mode: "0644" - -- name: add lightburn to applications menu - copy: - src: lightburn/lightburn.desktop - dest: /usr/share/applications/lightburn.desktop - owner: root - group: root - mode: "0644" - -- name: add group - group: - name: lightburn - system: yes - -- name: add sudoers config - copy: - content: "%lightburn ALL=/usr/local/bin/lightburn, NOPASSWD:/usr/local/bin/lightburn\n" - dest: /etc/sudoers.d/lightburn - owner: root - group: root - mode: "0644" - -- name: ensure guest-account settings directory exists - file: - path: /etc/guest-account - state: directory - mode: "0755" - owner: root - group: root - -- name: add lightburn group to guest account - lineinfile: - path: /etc/guest-account/groups - line: lightburn - create: yes diff --git a/packer/ansible/roles/fablab/tasks/main.yml b/packer/ansible/roles/fablab/tasks/main.yml index 40c6d9a..02faee9 100644 --- a/packer/ansible/roles/fablab/tasks/main.yml +++ b/packer/ansible/roles/fablab/tasks/main.yml @@ -18,9 +18,6 @@ - import_tasks: visicut.yml tags: - fablab:visicut - - import_tasks: lightburn.yml - tags: - - fablab:lightburn - import_tasks: prusa.yml tags: - fablab:prusa diff --git a/packer/ansible/roles/fablab/templates/lightburn/lightburn.j2 b/packer/ansible/roles/fablab/templates/lightburn/lightburn.j2 deleted file mode 100755 index bf7cfad..0000000 --- a/packer/ansible/roles/fablab/templates/lightburn/lightburn.j2 +++ /dev/null @@ -1 +0,0 @@ -LIGHTBURN_DOCKER_IMAGE='{{ fablab.lightburn.dockerimage }}' diff --git a/packer/ansible/roles/lightburn/.gitignore b/packer/ansible/roles/lightburn/.gitignore new file mode 100644 index 0000000..c4c4ffc --- /dev/null +++ b/packer/ansible/roles/lightburn/.gitignore @@ -0,0 +1 @@ +*.zip diff --git a/packer/ansible/roles/lightburn/files/lightburn.desktop b/packer/ansible/roles/lightburn/files/lightburn.desktop new file mode 100644 index 0000000..62d3c05 --- /dev/null +++ b/packer/ansible/roles/lightburn/files/lightburn.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=LightBurn +Exec=/opt/LightBurn/LightBurn +Icon=/opt/LightBurn/LightBurn.png +Type=Application +Categories=Graphics;VectorGraphics;Engineering; diff --git a/packer/ansible/roles/lightburn/tasks/devices.yml b/packer/ansible/roles/lightburn/tasks/devices.yml new file mode 100644 index 0000000..2981a65 --- /dev/null +++ b/packer/ansible/roles/lightburn/tasks/devices.yml @@ -0,0 +1,34 @@ +- name: Download devices files + uri: + url: "{{ device_url }}" + return_content: true + loop: "{{ lightburn.devices }}" + loop_control: + loop_var: device_url + register: lightburn_downloaded_devices + +- name: Create lightburn settings + set_fact: + lightburn_devices: "{{ lightburn_devices | default([]) + [device_settings] }}" + vars: + device_settings: "{{ (device.content | from_json)['DeviceList'][0] }}" + loop: "{{ lightburn_downloaded_devices.results }}" + loop_control: + loop_var: device + label: "{{ device_settings.DisplayName }}" + +- name: Create settings directory + file: + path: "{{ item }}" + state: directory + loop: + - /etc/skel/.config + - /etc/skel/.config/LightBurn + +- name: Create settings file + copy: + dest: /etc/skel/.config/LightBurn/prefs.ini + content: "{{ lightburn_settings | to_nice_json() }}" + vars: + lightburn_settings: + DeviceList: "{{ lightburn_devices }}" diff --git a/packer/ansible/roles/lightburn/tasks/install.yml b/packer/ansible/roles/lightburn/tasks/install.yml new file mode 100644 index 0000000..cd9895d --- /dev/null +++ b/packer/ansible/roles/lightburn/tasks/install.yml @@ -0,0 +1,13 @@ +--- +- name: Extract zip file + unarchive: + src: lightburn.zip + dest: /opt +- name: Create applications directory + file: + path: /usr/local/share/applications/ + state: directory +- name: Copy desktop file + copy: + src: lightburn.desktop + dest: /usr/local/share/applications/lightburn.desktop diff --git a/packer/ansible/roles/lightburn/tasks/main.yml b/packer/ansible/roles/lightburn/tasks/main.yml new file mode 100644 index 0000000..82ab78c --- /dev/null +++ b/packer/ansible/roles/lightburn/tasks/main.yml @@ -0,0 +1,10 @@ +--- +- block: + - import_tasks: install.yml + tags: + - lightburn:install + - import_tasks: devices.yml + tags: + - lightburn:devices + tags: + - lightburn