--- - name: Look up account for {{ dev_env__user }} ansible.builtin.getent: database: passwd key: "{{ dev_env__user }}" - name: Resolve home directory for {{ dev_env__user }} ansible.builtin.set_fact: dev_env__home: "{{ getent_passwd[dev_env__user][4] }}" - name: Set login shell to zsh for {{ dev_env__user }} ansible.builtin.user: name: "{{ dev_env__user }}" shell: /usr/bin/zsh tags: [users] - name: Clone oh-my-zsh for {{ dev_env__user }} become: true become_user: "{{ dev_env__user }}" ansible.builtin.git: repo: https://github.com/ohmyzsh/ohmyzsh.git dest: "{{ dev_env__home }}/.oh-my-zsh" version: master depth: 1 update: false - name: Clone oh-my-zsh custom plugins for {{ dev_env__user }} become: true become_user: "{{ dev_env__user }}" ansible.builtin.git: repo: "{{ item.repo }}" dest: "{{ dev_env__home }}/.oh-my-zsh/custom/plugins/{{ item.name }}" version: master depth: 1 update: false loop: "{{ dev_env__omz_custom_plugins }}" loop_control: label: "{{ item.name }}" - name: Clone tmux plugins (incl. TPM) for {{ dev_env__user }} become: true become_user: "{{ dev_env__user }}" ansible.builtin.git: repo: "{{ item.repo }}" dest: "{{ dev_env__home }}/.tmux/plugins/{{ item.name }}" version: "{{ item.version }}" depth: 1 update: false loop: "{{ dev_env__tmux_plugins }}" loop_control: label: "{{ item.name }}" - name: Install dotfiles into ~/.dotfiles for {{ dev_env__user }} become: true become_user: "{{ dev_env__user }}" ansible.builtin.copy: src: dotfiles/ dest: "{{ dev_env__home }}/.dotfiles/" mode: preserve tags: [config] - name: Stow dotfiles into home for {{ dev_env__user }} become: true become_user: "{{ dev_env__user }}" ansible.builtin.command: cmd: "stow --no-folding -v -d {{ dev_env__home }}/.dotfiles -t {{ dev_env__home }} zsh tmux nvim" register: dev_env__stow changed_when: "'LINK:' in dev_env__stow.stderr or 'LINK:' in dev_env__stow.stdout" tags: [config]