diff --git a/.conduit.yaml b/.conduit.yaml deleted file mode 100644 index 783caef..0000000 --- a/.conduit.yaml +++ /dev/null @@ -1,49 +0,0 @@ ---- -- location: ~/.config/zsh -- apt: - - zsh - - zsh-doc - - pinentry-curses - - xz-utils -- brew: - - zsh -- pacman: - - zsh -- dnf: - - util-linux-user - - zsh - - xz -- command: - - install: sudo chsh -s `which zsh` $USER - remove: sudo chsh -s `which bash` $USER -- symlink: - - {src: zlogin, dst: ~/.zlogin} - - {src: zlogout, dst: ~/.zlogout} - - {src: zprofile, dst: ~/.zprofile} - - {src: zshenv, dst: ~/.zshenv} - - {src: zshrc, dst: ~/.zshrc} - - src: prompt_fresh_setup - dst: ~/.local/share/zsh/site-functions/prompt_fresh_setup - - src: build/_build-dir - dst: ~/.local/share/zsh/site-functions/_build-dir - - src: sandbox/_sandbox - dst: ~/.local/share/zsh/site-functions/_sandbox - - src: layout/_layout - dst: ~/.local/share/zsh/site-functions/_layout - - src: notes/_note - dst: ~/.local/share/zsh/site-functions/_note -- repo: - - https://github.com/zsh-users/zsh-autosuggestions.git - - https://github.com/zsh-users/zsh-history-substring-search.git - - https://github.com/zsh-users/zsh-syntax-highlighting.git - - https://github.com/zsh-users/zsh-completions.git - - https://github.com/junegunn/fzf.git -- command: - - fzf/install --bin -- symlink: - - {src: fzf/bin/fzf, dst: ~/.local/bin/fzf} - - {src: fzf/bin/fzf-tmux, dst: ~/.local/bin/fzf-tmux} - - {src: cmake-uninstall, dst: ~/.local/bin/cmake-uninstall} -- command: - - zsh update-completion-links.zsh -- message: zsh will be the default prompt after next login diff --git a/README.md b/README.md index aa1cc25..116cdbc 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,13 @@ -## [conduit][conduit] +## Ansible -Simple, local, configuration manager. +To install this Zsh configuration: -Installation of the configuration files in this repository is orchestrated by -[conduit][conduit] as defined in the [`.conduit.yaml`](.conduit.yaml) file. This -includes [Zsh][zsh] package installs, setting [Zsh][zsh] as the users default -shell, and symbolic linking file such as [`zshrc`](zshrc) to `~/.zshrc`, and -cloning plugin repositories. The repository is cloned to `~/.config/zsh`. +```console +$ ansible-playbook main.yaml --ask-become-pass +``` ## Prompt diff --git a/main.yaml b/main.yaml new file mode 100644 index 0000000..0a05654 --- /dev/null +++ b/main.yaml @@ -0,0 +1,83 @@ +# yaml-language-server: $schema=https://json.schemastore.org/ansible-playbook.json +--- +- hosts: localhost + tasks: + - name: Install Zsh packages + package: + name: zsh + state: present + + - name: Install Zsh Debian packages + when: ansible_os_family == "Debian" + apt: + name: '{{item}}' + state: present + become: true + with_items: + - zsh-doc + - pinentry-curses + + - name: Clone Zsh Git Repositories + 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 + - repo: https://github.com/junegunn/fzf.git + dest: ~/.config/zsh/fzf + + - name: Install fzf binaries + command: + cmd: ~/.config/zsh/fzf/install --bin + creates: ~/.config/zsh/fzf/bin/fzf + + - name: Create Zsh symboic 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 + + - name: Get absolute path to Zsh + shell: which zsh + register: zsh + changed_when: false + + - name: Set default shell to Zsh + user: + name: '{{lookup("env", "USER")}}' + shell: '{{zsh.stdout}}' + become: true