diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-11-09 01:43:24 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-11-09 01:47:01 +0100 |
| commit | de990dbbb6d0b852b73046e1f8c8875ae0849403 (patch) | |
| tree | 9396a5471430a6288a27342b2e92bc0e79a4bc12 | |
| parent | aa8d8855e0a153245f2ad0832ebeea80af57cbfb (diff) | |
Add vim role w/testing
| -rw-r--r-- | configure.yml | 3 | ||||
| -rw-r--r-- | group_vars/all.yml | bin | 3723 -> 3766 bytes | |||
| -rw-r--r-- | group_vars/all.yml.example | 1 | ||||
| -rw-r--r-- | molecule/archlinux/converge.yml | 2 | ||||
| -rw-r--r-- | molecule/debian/converge.yml | 2 | ||||
| -rw-r--r-- | molecule/raspberrypi/converge.yml | 2 | ||||
| -rw-r--r-- | molecule/ubuntu/converge.yml | 2 | ||||
| -rw-r--r-- | roles/vim/meta/argument_specs.yml | 10 | ||||
| -rw-r--r-- | roles/vim/meta/main.yml | 19 | ||||
| -rw-r--r-- | roles/vim/tasks/main.yml | 32 |
10 files changed, 73 insertions, 0 deletions
diff --git a/configure.yml b/configure.yml index cbbff425..c6d78f08 100644 --- a/configure.yml +++ b/configure.yml @@ -18,6 +18,7 @@ - role: "gpg" - role: "dotfiles" - role: "password_store" + - role: "vim" - name: "Ubuntu configure" gather_facts: true @@ -39,6 +40,7 @@ - role: "gpg" - role: "dotfiles" - role: "password_store" + - role: "vim" - name: "Raspberry Pi configure" gather_facts: true @@ -58,3 +60,4 @@ - role: "gpg" - role: "dotfiles" - role: "password_store" + - role: "vim" diff --git a/group_vars/all.yml b/group_vars/all.yml Binary files differindex c23828a6..05b241ca 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml diff --git a/group_vars/all.yml.example b/group_vars/all.yml.example index 166fee3c..d5c63849 100644 --- a/group_vars/all.yml.example +++ b/group_vars/all.yml.example @@ -47,6 +47,7 @@ dotfiles_setup_script: | git remote set-url origin [email protected]:~a14m/.rc password_store_repo_url: "[email protected]:a14m/.pass" +vimrc_repo_url: "[email protected]:~a14m/.vim" wireguard_autostart_connection: "wg-vpn0" wireguard_connections: diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml index b091f109..d24e0530 100644 --- a/molecule/archlinux/converge.yml +++ b/molecule/archlinux/converge.yml @@ -19,6 +19,7 @@ python_global_version: "3.13" python_versions: - "3.13" + vimrc_repo_url: "https://git.sr.ht/~a14m/.vim" roles: - role: "hostname" - role: "network" @@ -41,3 +42,4 @@ - role: "rsync" - role: "gpg" - role: "dotfiles" + - role: "vim" diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml index 8d6dd739..38e93194 100644 --- a/molecule/debian/converge.yml +++ b/molecule/debian/converge.yml @@ -30,6 +30,7 @@ datasource_mappings: - key: "000000001" value: "prometheus" + vimrc_repo_url: "https://git.sr.ht/~a14m/.vim" roles: - role: "hostname" - role: "network" @@ -52,3 +53,4 @@ - role: "rsync" - role: "gpg" - role: "dotfiles" + - role: "vim" diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml index 1784bd62..fc59e9bc 100644 --- a/molecule/raspberrypi/converge.yml +++ b/molecule/raspberrypi/converge.yml @@ -23,6 +23,7 @@ datasource_mappings: - key: "000000001" value: "prometheus" + vimrc_repo_url: "https://git.sr.ht/~a14m/.vim" roles: - role: "hostname" - role: "network" @@ -42,3 +43,4 @@ - role: "rsync" - role: "gpg" - role: "dotfiles" + - role: "vim" diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml index 66d2a208..2112f974 100644 --- a/molecule/ubuntu/converge.yml +++ b/molecule/ubuntu/converge.yml @@ -19,6 +19,7 @@ python_global_version: "3.13" python_versions: - "3.13" + vimrc_repo_url: "https://git.sr.ht/~a14m/.vim" roles: - role: "hostname" - role: "network" @@ -41,3 +42,4 @@ - role: "rsync" - role: "gpg" - role: "dotfiles" + - role: "vim" diff --git a/roles/vim/meta/argument_specs.yml b/roles/vim/meta/argument_specs.yml new file mode 100644 index 00000000..71533908 --- /dev/null +++ b/roles/vim/meta/argument_specs.yml @@ -0,0 +1,10 @@ +--- +argument_specs: + main: + short_description: "Install and configure vim" + description: "Install and configure vim" + options: + vimrc_repo_url: + type: "str" + description: "The vimrc git repo URL" + required: true diff --git a/roles/vim/meta/main.yml b/roles/vim/meta/main.yml new file mode 100644 index 00000000..50f6e28c --- /dev/null +++ b/roles/vim/meta/main.yml @@ -0,0 +1,19 @@ +--- +dependencies: + - role: "git" +galaxy_info: + author: "a14m" + description: "Install and configure vim" + company: "kartoffeln.work GmbH." + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/vim/tasks/main.yml b/roles/vim/tasks/main.yml new file mode 100644 index 00000000..a0859f5c --- /dev/null +++ b/roles/vim/tasks/main.yml @@ -0,0 +1,32 @@ +--- +- name: "Ensure vim is installed" + become: true + ansible.builtin.package: + name: "vim" + state: "present" + +- name: "Clone vimrc git repo" + ansible.builtin.git: + repo: "{{ vimrc_repo_url }}" + dest: "{{ ansible_env.HOME }}/.vim" + clone: true + update: false + single_branch: true + version: main + +- name: "Ensure .vimrc is linked" + ansible.builtin.file: + src: "{{ ansible_env.HOME }}/.vim/.vimrc" + dest: "{{ ansible_env.HOME }}/.vimrc" + state: "link" + +# NOTE: based on https://stackoverflow.com/a/33734425/1769515 +- name: "Setup vim plugins" + ansible.builtin.command: + cmd: vim -E -s -u ~/.vimrc +PlugInstall +qall + creates: "{{ ansible_env.HOME }}/.vim/bundle/" + environment: + TERM: dumb + # We don't care much if vim failed to install all plugins + # this can be manually fixed later when needed + failed_when: false |
