--- - hosts: all become: true vars_files: - ../ansible-packages.yml vars: DOTFILES: "$HOME/.dotfiles" tasks: - name: Install required system packages (debian) apt: install_recommends: no update_cache: yes pkg: "{{ packages + packages_debian }}" when: ansible_facts['os_family'] == "Debian" - name: Install required system packages (debian) pacman: update_cache: yes name: "{{ packages + packages_archlinux }}" when: ansible_facts['os_family'] == "Archlinux" - name: dotfiles repo git: repo: https://git.decapod.one/brethil/dotfiles dest: "{{ DOTFILES }}" version: master - name: antibody shell: | set -o pipefail curl -sfL https://git.io/antibody | sh -s - -b /usr/local/bin antibody bundle "{{ DOTFILES }}/antibody_plugins.txt" args: executable: /bin/bash creates: /usr/local/bin/antibody - name: zsh as default shell user: name: "{{ ansible_user }}" shell: /usr/bin/zsh - name: zsh config shell: | echo "export DOTFILES={{ DOTFILES }}" >> "$HOME/.zshrc" echo 'source $DOTFILES/brethil_dotfile.sh' >> "$HOME/.zshrc" args: creates: "~{{ ansible_user }}/.zshrc" - name: dotfiles symlink file: src: "{{ DOTFILES }}/{{ item.key }}" dest: "{{ item.value }}" state: link force: yes loop: "{{ files | dict2items }}" vars: files: "ackrc": "~/.ackrc" "vim/vimrc": "~/.vimrc" "pdbrc.py": "~/.pdbrc.py" # "ipython": "~/.ipython" # FIXME: ipython config is more complex "ansible.cfg": "~/.ansible.cfg" - name: git config facts community.general.git_config: name: "include.path" scope: global register: config_value - debug: msg: "Git config include.path={{ config_value }}" - name: git config community.general.git_config: name: "include.path" value: "{{ DOTFILES }}/gitconfig" scope: global when: config_value is not defined - name: annoyances shell: | ## Fix scrolling in byobu if [[ $(uname) == "Darwin" ]]; then sed -i '' 's/set -g terminal-overrides/#set -g terminal-overrides/' /usr/share/byobu/profiles/tmux else sed -i 's/set -g terminal-overrides/#set -g terminal-overrides/' /usr/share/byobu/profiles/tmux fi sed 's|ls \\|#ls \\|' /etc/grc.zsh args: executable: /bin/bash when: fix_annoyances is true - name: directories file: dest: "{{ item }}" state: directory mode: 0700 loop: "{{ directories }}" vars: directories: - "$HOME/bin" - "$HOME/projects" - "$HOME/git"