--- - name: "ensure beets is not installed via apt" ansible.builtin.apt: name: "beets" state: "absent" autoremove: true purge: true - name: "install pipx" ansible.builtin.apt: name: "pipx" - name: "install beets" community.general.pipx: name: "beets==2.0.0" install_deps: true system_site_packages: true become_user: "{{ music_user_name }}" - name: "install other utils" ansible.builtin.apt: name: - "ffmpeg" - "flac" - "sqlite3" - "unzip" - name: "install nextcloud-upload" ansible.builtin.copy: src: "./nextcloud-upload" dest: "/usr/local/bin/nextcloud-upload" mode: 0755 - name: "resolve nextcloud-upload via hosts file (inet)" ansible.builtin.lineinfile: path: "/etc/hosts" line: "{{ music_org_nextcloud_inet_address }} {{ music_user_nextcloud_domain }}" insertafter: "EOF" - name: "resolve nextcloud-upload via hosts file (inet6)" ansible.builtin.lineinfile: path: "/etc/hosts" line: "{{ music_org_nextcloud_inet6_address }} {{ music_user_nextcloud_domain }}" insertafter: "EOF" - block: - name: "create beets config directory" ansible.builtin.file: path: "{{ music_user_home_directory }}/.config/beets" state: "directory" owner: "{{ music_user_name }}" group: "{{ music_user_name }}" mode: 0755 - name: "create beets convert directory" ansible.builtin.file: path: "/var/tmp/{{ music_user_name }}/mp3" state: "directory" owner: "{{ music_user_name }}" group: "{{ music_user_name }}" mode: 0755 - name: "configure common beets config" ansible.builtin.blockinfile: path: "{{ music_user_home_directory }}/.config/beets/{{ item }}.yaml" create: true mode: 0644 insertafter: "EOF" marker: "# {mark} ANSIBLE MANAGED BLOCK COMMON" block: "{{ lookup('ansible.builtin.template', './beets-common.yml') }}" with_items: - "config" - "archive" - name: "configure beets for collection" ansible.builtin.blockinfile: path: "{{ music_user_home_directory }}/.config/beets/config.yaml" insertbefore: "BOF" marker: "# {mark} ANSIBLE MANAGED BLOCK COLLECTION" block: "{{ lookup('ansible.builtin.template', './beets-collection.yml') }}" - name: "configure beets for archive" ansible.builtin.blockinfile: path: "{{ music_user_home_directory }}/.config/beets/archive.yaml" insertbefore: "BOF" marker: "# {mark} ANSIBLE MANAGED BLOCK ARCHIVE" block: "{{ lookup('ansible.builtin.template', './beets-archive.yml') }}" - name: "create nextcloud-upload config directory" ansible.builtin.file: path: "{{ music_user_home_directory }}/.config/nextcloud-upload" state: "directory" owner: "{{ music_user_name }}" group: "{{ music_user_name }}" mode: 0755 - name: "configure nextcloud-upload for music" ansible.builtin.template: src: "./nextcloud-upload.yml" dest: "{{ music_user_home_directory }}/.config/nextcloud-upload/config.yml" mode: 0644 vars: music_user_nextcloud_user: "{{ music_user_nextcloud_music_user }}" music_user_nextcloud_pswd: "{{ music_user_nextcloud_music_pswd }}" - name: "configure nextcloud-upload for videos" ansible.builtin.template: src: "./nextcloud-upload.yml" dest: "{{ music_user_home_directory }}/.config/nextcloud-upload/videos.yml" mode: 0644 vars: music_user_nextcloud_user: "{{ music_user_nextcloud_videos_user }}" music_user_nextcloud_pswd: "{{ music_user_nextcloud_videos_pswd }}" become_user: "{{ music_user_name }}"