Skip to content

Commit

Permalink
Update ansible provisioners
Browse files Browse the repository at this point in the history
- Add Jenkinsfile vim plugin
- Refactor ansible vim role
  • Loading branch information
theodore86 committed Dec 19, 2022
1 parent 7a7b059 commit cefa2b2
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 79 deletions.
61 changes: 42 additions & 19 deletions provisioners/ansible/roles/vim/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,46 @@
---
vim_plugin_dir: '{{ ansible_env.HOME }}/.vim'
rfvim_reinstall: false
j2vim_reinstall: false
j2vim:
vim_plugins_dir: '{{ ansible_env.HOME }}/.vim'
vim_plugins:
- filename: 'jinja.vim'
reinstall: &reinstall false
runtimepath:
- 'syntax'
- 'ftdetect'
- 'ftplugin'
- 'indent'
git:
proto: 'https'
host: 'github.com'
user: 'Glench'
repo:
name: 'Vim-Jinja2-Syntax'
version: 'master'
directory: '/tmp'
rfvim:
proto: &proto 'https'
host: &host 'github.com'
user: 'Glench'
repo:
name: 'Vim-Jinja2-Syntax'
version: &version 'master'
directory: &install_dir '{{ ansible_env.HOME }}/.vim_plugins'
- filename: 'robot.vim'
reinstall: *reinstall
runtimepath:
- 'after/syntax'
- 'ftdetect'
git:
proto: 'https'
host: 'github.com'
user: 'mfukar'
repo:
name: 'robotframework-vim'
version: 'master'
directory: '/tmp'
proto: *proto
host: *host
user: 'mfukar'
repo:
name: 'robotframework-vim'
version: *version
directory: *install_dir
- filename: 'Jenkinsfile.vim'
reinstall: *reinstall
runtimepath:
- 'syntax'
- 'ftdetect'
- 'indent'
git:
proto: *proto
host: *host
user: 'martinda'
repo:
name: 'Jenkinsfile-vim-syntax'
version: *version
directory: *install_dir
...
94 changes: 34 additions & 60 deletions provisioners/ansible/roles/vim/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,96 +22,70 @@
force: 'yes'
mode: 0644

- name: 'Ensure {{ vim_plugin_dir }}'
- name: 'Ensure {{ vim_plugins_dir }}'
file:
path: '{{ vim_plugin_dir }}'
path: '{{ vim_plugins_dir }}'
state: 'directory'
owner: '{{ ansible_env.USER }}'
group: '{{ ansible_env.USER }}'
mode: 0755

- name: 'Cleanup {{ j2vim.git.directory }}/{{ j2vim.git.repo.name }} directory'
- name: 'Cleanup plugin checkout directory'
file:
path: '{{ j2vim.git.directory }}/{{ j2vim.git.repo.name }}'
path: '{{ item.git.directory }}/{{ item.git.repo.name }}'
state: 'absent'
when: 'j2vim_reinstall | bool'
loop: '{{ vim_plugins }}'
when: 'item.reinstall | bool'

- name: 'Cleanup {{ rfvim.git.directory }}/{{ rfvim.git.repo.name }} directory'
- name: 'Cleanup plugin repository files under: {{ vim_plugins_dir }}'
file:
path: '{{ rfvim.git.directory }}/{{ rfvim.git.repo.name }}'
path: '{{ vim_plugins_dir }}/{{ item.1 }}/{{ item.0.filename }}'
state: 'absent'
when: 'rfvim_reinstall | bool'
with_subelements:
- '{{ vim_plugins }}'
- 'runtimepath'
when: 'item.0.reinstall | bool'

- name: 'Cleanup {{ j2vim.git.repo.name }} files under: {{ vim_plugin_dir }}'
- name: 'Ensure plugin directory'
file:
path: '{{ vim_plugin_dir }}/{{ item }}/jinja.vim'
state: 'absent'
loop:
- 'syntax'
- 'ftdetect'
- 'ftplugin'
- 'indent'
when: 'j2vim_reinstall | bool'

- name: 'Cleanup {{ rfvim.git.repo.name }} files under: {{ vim_plugin_dir }}'
file:
path: '{{ vim_plugin_dir }}/{{ item }}/robot.vim'
state: 'absent'
loop:
- 'after/syntax'
- 'ftdetect'
when: 'rfvim_reinstall | bool'

- name: 'Checkout {{ j2vim.git.repo.name }} plugin'
git:
repo: '{{ j2vim.git.proto }}://{{ j2vim.git.host }}/{{ j2vim.git.user }}/{{ j2vim.git.repo.name }}.git'
dest: '{{ j2vim.git.directory }}/{{ j2vim.git.repo.name }}'
version: '{{ j2vim.git.repo.version }}'
accept_hostkey: 'yes'
update: 'no'
path: '{{ item.git.directory }}'
state: 'directory'
owner: '{{ ansible_env.USER }}'
group: '{{ ansible_env.USER }}'
mode: 0755
loop: '{{ vim_plugins }}'

- name: 'Checkout {{ rfvim.git.repo.name }} plugin'
- name: 'Checkout VIM plugins'
git:
repo: '{{ rfvim.git.proto }}://{{ rfvim.git.host }}/{{ rfvim.git.user }}/{{ rfvim.git.repo.name }}.git'
dest: '{{ rfvim.git.directory }}/{{ rfvim.git.repo.name }}'
version: '{{ rfvim.git.repo.version }}'
repo: '{{ item.git.proto }}://{{ item.git.host }}/{{ item.git.user }}/{{ item.git.repo.name }}.git'
dest: '{{ item.git.directory }}/{{ item.git.repo.name }}'
version: '{{ item.git.repo.version }}'
accept_hostkey: 'yes'
update: 'no'
loop: '{{ vim_plugins }}'

- name: 'Add {{ rfvim.git.repo.name }} highlighting for .resource file extension'
- name: 'Add RF-VIM plugin highlighting for .resource files'
lineinfile:
path: '{{ rfvim.git.directory }}/{{ rfvim.git.repo.name }}/ftdetect/robot.vim'
path: '{{ item.git.directory }}/{{ item.git.repo.name }}/ftdetect/{{ item.filename }}'
regexp: '^au.*?\.robot.*?(?<!\.resource).*?robot$'
line: 'au BufNewFile,BufRead *.robot,*.resource setlocal filetype=robot'
state: 'present'
backup: 'yes'
owner: '{{ ansible_env.USER }}'
group: '{{ ansible_env.USER }}'
mode: 0644
loop: '{{ vim_plugins }}'
when: 'item.git.repo.name == "robotframework-vim"'

- name: 'Copy {{ rfvim.git.repo.name }} plugin contents'
copy:
src: '{{ rfvim.git.directory }}/{{ rfvim.git.repo.name }}/{{ item }}/'
dest: '{{ vim_plugin_dir }}/{{ item }}/'
force: 'yes'
owner: '{{ ansible_env.USER }}'
group: '{{ ansible_env.USER }}'
mode: 'preserve'
loop:
- 'after/syntax'
- 'ftdetect'

- name: 'Copy {{ j2vim.git.repo.name }} plugin contents'
- name: 'Copy each plugin contents to runtimepath'
copy:
src: '{{ j2vim.git.directory }}/{{ j2vim.git.repo.name }}/{{ item }}/'
dest: '{{ vim_plugin_dir }}/{{ item }}/'
src: '{{ item.0.git.directory }}/{{ item.0.git.repo.name }}/{{ item.1 }}/'
dest: '{{ vim_plugins_dir }}/{{ item.1 }}/'
force: 'yes'
owner: '{{ ansible_env.USER }}'
group: '{{ ansible_env.USER }}'
mode: 'preserve'
loop:
- 'syntax'
- 'ftdetect'
- 'ftplugin'
- 'indent'
with_subelements:
- '{{ vim_plugins }}'
- 'runtimepath'
...

0 comments on commit cefa2b2

Please sign in to comment.