diff --git a/main.yaml b/main.yaml index 7f3c3ed..a93d22f 100644 --- a/main.yaml +++ b/main.yaml @@ -1,6 +1,7 @@ --- - hosts: localhost roles: + - zsh - neovim - hosts: windows diff --git a/roles/zsh/handlers/main.yaml b/roles/zsh/handlers/main.yaml new file mode 100644 index 0000000..e1f75b7 --- /dev/null +++ b/roles/zsh/handlers/main.yaml @@ -0,0 +1,4 @@ +--- +- name: install fzf binaries + command: + cmd: ~/.config/zsh/fzf/install --bin diff --git a/roles/zsh/tasks/Darwin.yaml b/roles/zsh/tasks/Darwin.yaml new file mode 100644 index 0000000..d20dfd6 --- /dev/null +++ b/roles/zsh/tasks/Darwin.yaml @@ -0,0 +1,6 @@ +--- +- name: install homebrew packages + homebrew: + name: + - zsh + state: latest diff --git a/roles/zsh/tasks/Debian.yaml b/roles/zsh/tasks/Debian.yaml new file mode 100644 index 0000000..110ae8b --- /dev/null +++ b/roles/zsh/tasks/Debian.yaml @@ -0,0 +1,10 @@ +--- +- name: install apt packages + become: true + apt: + name: + - zsh + - zsh-doc + - pinentry-curses + - unzip + state: latest diff --git a/roles/zsh/tasks/main.yaml b/roles/zsh/tasks/main.yaml new file mode 100644 index 0000000..905a13e --- /dev/null +++ b/roles/zsh/tasks/main.yaml @@ -0,0 +1,83 @@ +--- +- include_tasks: '{{ansible_os_family}}.yaml' + +- name: clone config repo + git: + repo: git@code.infektor.net:config/zsh.git + dest: ~/.config/zsh + version: master + +- name: clone plugin repos + git: + repo: '{{item.repo}}' + dest: '{{item.dest}}' + with_items: + - repo: https://github.com/zsh-users/zsh-autosuggestions.git + dest: ~/.config/zsh/zsh-autosuggestions + - repo: https://github.com/zsh-users/zsh-history-substring-search.git + dest: ~/.config/zsh/zsh-history-substring-search + - repo: https://github.com/zsh-users/zsh-syntax-highlighting.git + dest: ~/.config/zsh/zsh-syntax-highlighting + - repo: https://github.com/zsh-users/zsh-completions.git + dest: ~/.config/zsh/zsh-completions + +- name: clone fzf repo + git: + repo: https://github.com/junegunn/fzf.git + dest: ~/.config/zsh/fzf + notify: install fzf binaries +- meta: flush_handlers + +- name: create directories + file: + state: directory + dest: '{{item}}' + with_items: + - ~/.local/bin + - ~/.local/share/zsh/site-functions + +- name: create symbolic links + file: + state: link + src: '{{item.src}}' + dest: '{{item.dest}}' + with_items: + - src: ~/.config/zsh/zlogin + dest: ~/.zlogin + - src: ~/.config/zsh/zlogout + dest: ~/.zlogout + - src: ~/.config/zsh/zprofile + dest: ~/.zprofile + - src: ~/.config/zsh/zshenv + dest: ~/.zshenv + - src: ~/.config/zsh/zshrc + dest: ~/.zshrc + - src: ~/.config/zsh/prompt_fresh_setup + dest: ~/.local/share/zsh/site-functions/prompt_fresh_setup + - src: ~/.config/zsh/build/_build-dir + dest: ~/.local/share/zsh/site-functions/_build-dir + - src: ~/.config/zsh/sandbox/_sandbox + dest: ~/.local/share/zsh/site-functions/_sandbox + - src: ~/.config/zsh/layout/_layout + dest: ~/.local/share/zsh/site-functions/_layout + - src: ~/.config/zsh/notes/_note + dest: ~/.local/share/zsh/site-functions/_note + - src: ~/.config/zsh/fzf/bin/fzf + dest: ~/.local/bin/fzf + - src: ~/.config/zsh/fzf/bin/fzf-tmux + dest: ~/.local/bin/fzf-tmux + - src: ~/.config/zsh/cmake-uninstall + dest: ~/.local/bin/cmake-uninstall + - src: ~/.config/zsh/$ + dest: ~/.local/bin/$ + +- name: get absolute path + shell: command -v zsh + register: zsh + changed_when: false + +- name: set default shell + user: + name: '{{lookup("env", "USER")}}' + shell: '{{zsh.stdout}}' + become: true