#!/usr/bin/ansible-playbook
# vim:ft=ansible:
---
- name: Configure desktop system
  block:
    - name: Create config directories
      file:
        path: "{{ item }}"
        state: directory
        recurse: yes
      loop:
        - "/etc/X11/xorg.conf.d"
    - name: Nuke some configs
      file:
        path: "{{ item }}"
        state: absent
      loop:
        # Works around a bug where this causes failed logins
        - "/etc/X11/Xsession.d/70im-config_launch"
    - name: Copy system configs
      template:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
        mode: "{{ item.mode }}"
      loop:
        - { src: "sshd_config", dest: "/etc/ssh/sshd_config", mode: "0644" }
        - { src: "nomouseaccel.conf", dest: "/etc/X11/xorg.conf.d/90-mouse-acceleration.conf", mode: "0644" }
        - { src: "touchpad.conf", dest: "/etc/X11/xorg.conf.d/90-touchpad.conf", mode: "0644" }
        - { src: "grubconfig", dest: "/etc/default/grub", mode: "0644" }
    - name: Copy udev rules
      template:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
        mode: "{{ item.mode }}"
      loop:
        - { src: "g810-led.rules", dest: "/etc/udev/rules.d/50-g810-led.rules", mode: "0644" }
        - { src: "switch-rcm.rules", dest: "/etc/udev/rules.d/50-switch-rcm.rules", mode: "0644" }
      notify: reload udev
      tags: [ udev ]
    - name: Configure custom kernel modules
      include_tasks: dkms.yml
      tags: [ dkms ]
    - name: Configure SSH
      include_tasks: sshd.yml
    - name: Configure system packages
      include_tasks: packages.yml
    - name: Configure Mopidy
      include_tasks: mopidy.yml
    - name: Set up Plymouth bgrt
      alternatives:
        name: default.plymouth
        path: /usr/share/plymouth/themes/bgrt/bgrt.plymouth
      notify: regen initramfs
    - name: Stop services
      systemd:
        name: "{{ item }}"
        enabled: no
        state: stopped
      loop:
        - mopidy.service
        - motd-news.timer
    - name: Start services
      systemd:
        name: "{{ item }}"
        enabled: yes
        state: started
      loop:
        - syncthing@salt.service
    - name: Template out backup module
      template:
        src: "backup.sh"
        dest: "/opt/backups/modules/desktop.sh"
        mode: "0600"
  become: yes