--- - 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 when: local_development is not defined - name: directories file: dest: '{{ item }}' state: directory mode: 0700 loop: '{{ directories }}' vars: directories: - '$HOME/bin' - '$HOME/projects' - '$HOME/git' - name: antibody # TODO: antibody is available on apt(debian)/brew/pacman shell: | set -euo pipefail curl -sfL https://git.io/antibody | sh -s - -b $HOME/bin/ /opt/homebrew/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 blockinfile: path: $HOME/.zshrc marker: "# brethil dotfiles" block: | export DOTFILES={{ DOTFILES }} source $DOTFILES/brethil_dotfile.sh - name: dotfiles symlink file: src: '{{ DOTFILES }}/{{ item.key }}' dest: '{{ item.value }}' state: link force: yes loop: '{{ files | dict2items }}' vars: files: 'tmux.conf': '~/.tmux.conf' 'vim/vimrc': '~/.vimrc' 'pdbrc.py': '~/.pdbrc.py' # "ipython": "~/.ipython" # FIXME: ipython config is more complex 'ansible/ansible.cfg': '~/.ansible.cfg' - name: check undodir_migration stat: path=${HOME}/.vim_runtime/temp_dirs/undodir register: undodir - name: vim undodir migration command: mv ${HOME}/.vim_runtime/temp_dirs/undodir ${HOME}/.vim/undo when: undodir.stat.exists - name: vim plugins install # Open vim once so that the plugins are installed command: echo | env DOTFILES={{ DOTFILES }} vim - 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: git global .gitignore copy: src: ../../gitignore dest: ~/.gitignore mode: '0600' backup: yes - name: annoyances shell: | ## Fix scrolling in byobu if [[ $(uname) == "Darwin" ]]; then sed -i '' 's/set -g terminal-overrides/#set -g terminal-overrides/' /usr/local/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