- name: Create .config/guix. file: path: "/home/{{ item['login'] }}/.config/guix" state: directory recurse: yes force: no become_user: "{{ item['login'] }}" loop: "{{ users }}" ignore_errors: yes - name: Copy channels. copy: src: files/home/user/.config/guix/channels.scm dest: "/home/{{ item.login }}/.config/guix/channels.scm" become_user: "{{ item.login }}" loop: "{{ users }}" - name: Copy nonfree channels. copy: src: files/home/user/.config/guix/channels-nonfree.scm dest: "/home/{{ item.login }}/.config/guix/channels-nonfree.scm" become_user: "{{ item.login }}" loop: "{{ users }}" - name: Guix pull everywhere. command: cmd: /usr/bin/bash -l -c 'guix pull -c6' become_user: "{{ item.login }}" loop: "{{ users }}" tags: guix-pull # - name: Run guix pull as root. # tags: guix-pull # command: # cmd: guix pull - name: Copy package manifest. copy: src: files/etc/guix_manifest.scm dest: /etc/guix_manifest.scm tags: guix-inst-pkg - name: Install packages. command: cmd: /usr/bin/bash -l -c 'guix package -c8 -m /etc/guix_manifest.scm --fallback -p ~/.man-guix-prof' tags: guix-inst-pkg become_user: "{{ item.login }}" retries: 20 delay: 5 register: result until: result.rc == 0 loop: "{{ users }}" # - name: Install guix managed programs. # tags: guix-copy-bin # copy: # src: files/home/user/.local/bin/ # dest: "/home/{{ item.login }}/.local/bin" # mode: '0744' # owner: "{{ item.login }}" # group: "{{ item.login }}" # loop: "{{ users }}"