- name: clone dotfiles git: repo: '{{ dotfiles_repo }}' dest: '{{ ansible_env.HOME }}/dotfiles' version: master update: yes register: dotfile_ssh_clone ignore_errors: true - name: clone dotfiles git: repo: '{{ public_dotfiles_repo }}' dest: '{{ ansible_env.HOME }}/dotfiles' version: master update: yes when: dotfile_ssh_clone.failed - name: Create xdg configuration directories ansible.builtin.file: path: '{{ item }}' state: directory mode: '744' loop: - '{{ xdg_config_dir }}/git' - '{{ xdg_config_dir }}/tmux' - name: Remove previous dotfiles ansible.builtin.file: path: '{{ item }}' state: absent loop: - '{{ ansible_env.HOME }}/.tmux.conf' - name: setup dotfiles file: path: '{{ item.dest }}' src: '{{ item.src }}' state: link force: true loop: - { src: '{{ ansible_env.HOME }}/dotfiles/.vimrc', dest: '{{ ansible_env.HOME }}/.vimrc', } - { src: '{{ ansible_env.HOME }}/dotfiles/.bashrc', dest: '{{ ansible_env.HOME }}/.bashrc', } - { src: '{{ ansible_env.HOME }}/dotfiles/.profile', dest: '{{ ansible_env.HOME }}/.profile', } - { src: '{{ ansible_env.HOME }}/dotfiles/.tmux.conf', dest: '{{ xdg_config_dir }}/tmux/tmux.conf', } - { src: '{{ ansible_env.HOME }}/dotfiles/.gitignore', dest: '{{ xdg_config_dir }}/git/ignore', }