From e346a61cedb1b049d877ebd2764f697ba92c6394 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Wed, 12 Jan 2022 06:06:12 +0100 Subject: [PATCH] Feat: modularie user and dotfiles --- .../molecule/default/tests/test_default.py | 9 +++++ roles/user/tasks/arch.yml | 3 +- roles/user/tasks/dotfiles.yml | 37 +++++++++++++++++++ roles/user/tasks/main.yml | 25 +------------ roles/user/tasks/neovim.yml | 24 ++++++++++++ roles/user/tasks/sway.yml | 23 ++++++++++++ roles/user/tasks/vim.yml | 23 ++++++++++++ 7 files changed, 119 insertions(+), 25 deletions(-) create mode 100644 roles/user/tasks/dotfiles.yml create mode 100644 roles/user/tasks/neovim.yml create mode 100644 roles/user/tasks/sway.yml create mode 100644 roles/user/tasks/vim.yml diff --git a/roles/user/molecule/default/tests/test_default.py b/roles/user/molecule/default/tests/test_default.py index da2b897..5e2a0da 100644 --- a/roles/user/molecule/default/tests/test_default.py +++ b/roles/user/molecule/default/tests/test_default.py @@ -37,3 +37,12 @@ def test_clone_dotfiles(host): dotfiles = host.file(admin.home + "/.dotfiles") assert dotfiles.exists assert dotfiles.user == admin.name + +def test_stow_config(host): + user = host.user("user") + nvim_config = host.files(user.home + "/.config/nvim/") + assert nvim_config.exists + + admin = host.user("admin") + nvim_config = host.files(admin.home + "/.config/nvim/") + assert not nvim_config.exists diff --git a/roles/user/tasks/arch.yml b/roles/user/tasks/arch.yml index 2a8502b..6a1c706 100644 --- a/roles/user/tasks/arch.yml +++ b/roles/user/tasks/arch.yml @@ -3,10 +3,9 @@ community.general.pacman: name: stow state: present - become: true - name: Install git community.general.pacman: name: git state: present - become: true + diff --git a/roles/user/tasks/dotfiles.yml b/roles/user/tasks/dotfiles.yml new file mode 100644 index 0000000..72310b7 --- /dev/null +++ b/roles/user/tasks/dotfiles.yml @@ -0,0 +1,37 @@ +--- +- name: Install for arch + import_tasks: arch.yml + when: ansible_os_family == "Archlinux" + +- name: Install for debian + import_tasks: debian.yml + when: ansible_os_family == "Debian" + +- name: init neovim + import_tasks: neovim.yml + when: '"nvim" in user.config.stowing' + +- name: init vim + import_tasks: vim.yml + when: '"vim" in user.config.stowing' + +- name: init sway + import_tasks: sway.yml + when: '"sway" in user.config.stowing' + +- name: Clone dotfiles + ansible.builtin.git: + repo: "{{ user.config.giturl }}" + dest: "/home/{{ user.username }}/.dotfiles" + +- name: user owns its dotfiles + ansible.builtin.file: + path: "/home/{{ user.username }}/.dotfiles" + owner: "{{ user.username }}" + +- name: stow configs + ansible.builtin.command: + cmd: stow {{ item }} + chdir: "/home/{{ user.username }}/.dotfiles" + with_items: "{{ user.config.stowing }}" + diff --git a/roles/user/tasks/main.yml b/roles/user/tasks/main.yml index 7231c20..007d9b4 100644 --- a/roles/user/tasks/main.yml +++ b/roles/user/tasks/main.yml @@ -27,27 +27,6 @@ when: user.public_key # Dotfiles -- name: Install for arch - import_tasks: arch.yml - when: ansible_os_family == "Archlinux" - -- name: Install for debian - import_tasks: debian.yml - when: ansible_os_family == "Debian" - -- name: Clone dotfiles - ansible.builtin.git: - repo: "{{ user.config.giturl }}" - dest: "/home/{{ user.username }}/.dotfiles" - -- name: user owns its dotfiles - ansible.builtin.file: - path: "/home/{{ user.username }}/.dotfiles" - owner: "{{ user.username }}" - -- name: stow configs - ansible.builtin.command: - cmd: stow {{ item }} - chdir: "/home/{{ user.username }}/.dotfiles" - with_items: "{{ user.config.stowing }}" +- name: set dotfiles + import_tasks: dotfiles.yml diff --git a/roles/user/tasks/neovim.yml b/roles/user/tasks/neovim.yml new file mode 100644 index 0000000..e7009f9 --- /dev/null +++ b/roles/user/tasks/neovim.yml @@ -0,0 +1,24 @@ +--- +- name: Install neovim + community.general.pacman: + name: neovim + state: present + when: ansible_os_family == "Archlinux" + +- name: Install neovim + apt: + name: neovim + state: present + when: ansible_os_family == "Debian" + +- name: Install packer + ansible.builtin.git: + repo: "https://github.com/wbthomason/packer.nvim" + dest: "/home/{{ user.username }}/.local/share/nvim/site/pack/packer/start/packer.nvim" + depth: 1 + +- name: user owns packer + ansible.builtin.file: + path: "/home/{{ user.username }}/.local/share/nvim/site/pack/packer/start/packer.nvim" + owner: "{{ user.username }}" + diff --git a/roles/user/tasks/sway.yml b/roles/user/tasks/sway.yml new file mode 100644 index 0000000..12094ee --- /dev/null +++ b/roles/user/tasks/sway.yml @@ -0,0 +1,23 @@ +--- +- name: Install sway packages + community.general.pacman: + name: + - sway + - gammastep + - mako + - rofi + - rofi-pass + - grim + - kanshi + - blueman + - pamixer + - waybar + - network-manager-applet + - wlroots + - xdg-desktop-portal-wlr + - wl-clipboard + state: present + +- name: Install sway AUR packages + aut: + - avizo diff --git a/roles/user/tasks/vim.yml b/roles/user/tasks/vim.yml new file mode 100644 index 0000000..b8974e5 --- /dev/null +++ b/roles/user/tasks/vim.yml @@ -0,0 +1,23 @@ +--- +- name: Install vim + community.general.pacman: + name: vim + state: present + when: ansible_os_family == "Archlinux" + +- name: Install vim + apt: + name: vim + state: present + when: ansible_os_family == "Debian" + +- name: Install vim-plug + get_url: + url: "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" + dest: "/home/{{ user.username }}/.vim/autoload/plug.vim" + +- name: user owns vim-plug + ansible.builtin.file: + path: "/home/{{ user.username }}/.vim/autoload/plug.vim" + owner: "{{ user.username }}" +