--- - name: Set authorized SSH keys authorized_key: user: "{{ ansible_facts.user_id }}" state: present key: "{{ item }}" with_file: authorized_keys - name: Get current shell shell: "getent passwd {{ ansible_facts.user_id }} | cut -d: -f7" register: current_shell changed_when: no - name: Change shell to fish command: chsh --shell /usr/bin/fish when: "current_shell.stdout != '/usr/bin/fish'" - name: Copy dotfiles to home directory copy: src: dotfiles/ dest: "{{ ansible_facts.env.HOME }}/" mode: preserve - name: Copy Git config to home directory template: src: gitconfig.j2 dest: "{{ ansible_facts.env.HOME }}/.config/git/config" - name: Remove unneeded files file: path: "{{ item }}" state: absent loop: - "{{ ansible_facts.env.HOME }}/.bash_history" - "{{ ansible_facts.env.HOME }}/.bash_logout" - "{{ ansible_facts.env.HOME }}/.bash_profile" - "{{ ansible_facts.env.HOME }}/.bashrc" - "{{ ansible_facts.env.HOME }}/.emacs" - "{{ ansible_facts.env.HOME }}/.zcompdump" - "{{ ansible_facts.env.HOME }}/.zshrc" - name: Download and update iTerm2 shell integration get_url: url: https://iterm2.com/shell_integration/fish dest: "{{ ansible_facts.env.HOME }}/.config/fish/conf.d/iterm2_integration.fish" force: yes - name: Download and update Oh My Fish! packages git: repo: "{{ item.value }}" dest: "{{ ansible_facts.env.HOME }}/.config/fish/pkgs/{{ item.key }}" loop: "{{ omf_pkgs | dict2items }}" notify: Collect fish functions from packages - name: Disable cron MAILTO cronvar: name: MAILTO value: "" - name: Set up host-specific cronjobs cron: "{{ item }}" loop: "{{ cronjobs.get(ansible_facts.user_id, []) }}"