Merge pull request #216 from myii/add-test-vimrc-generation
fix(vimrc): ensure `vimrc` state runs
This commit is contained in:
commit
1a96921e89
|
@ -50,7 +50,8 @@ jobs:
|
||||||
## Define the rest of the matrix based on Kitchen testing
|
## Define the rest of the matrix based on Kitchen testing
|
||||||
# Make sure the instances listed below match up with
|
# Make sure the instances listed below match up with
|
||||||
# the `platforms` defined in `kitchen.yml`
|
# the `platforms` defined in `kitchen.yml`
|
||||||
- env: INSTANCE=default-debian-10-master-py3
|
# - env: INSTANCE=default-debian-10-master-py3
|
||||||
|
- env: INSTANCE=vimrc-debian-10-master-py3
|
||||||
# - env: INSTANCE=default-ubuntu-1804-master-py3
|
# - env: INSTANCE=default-ubuntu-1804-master-py3
|
||||||
# - env: INSTANCE=default-centos-8-master-py3
|
# - env: INSTANCE=default-centos-8-master-py3
|
||||||
# - env: INSTANCE=default-fedora-31-master-py3
|
# - env: INSTANCE=default-fedora-31-master-py3
|
||||||
|
|
23
kitchen.yml
23
kitchen.yml
|
@ -192,3 +192,26 @@ suites:
|
||||||
verifier:
|
verifier:
|
||||||
inspec_tests:
|
inspec_tests:
|
||||||
- path: test/integration/default
|
- path: test/integration/default
|
||||||
|
- name: vimrc
|
||||||
|
provisioner:
|
||||||
|
state_top:
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- users.vimrc
|
||||||
|
pillars:
|
||||||
|
top.sls:
|
||||||
|
base:
|
||||||
|
'*':
|
||||||
|
- users
|
||||||
|
- vimrc
|
||||||
|
pillars_from_files:
|
||||||
|
users.sls: test/salt/pillar/default.sls
|
||||||
|
vimrc.sls: test/salt/pillar/vimrc.sls
|
||||||
|
dependencies:
|
||||||
|
- name: vim
|
||||||
|
repo: git
|
||||||
|
source: https://github.com/saltstack-formulas/vim-formula.git
|
||||||
|
verifier:
|
||||||
|
inspec_tests:
|
||||||
|
- path: test/integration/default
|
||||||
|
- path: test/integration/vimrc
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
# InSpec Profile: `vimrc`
|
||||||
|
|
||||||
|
This shows the implementation of the `vimrc` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md).
|
||||||
|
|
||||||
|
## Verify a profile
|
||||||
|
|
||||||
|
InSpec ships with built-in features to verify a profile structure.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ inspec check vimrc
|
||||||
|
Summary
|
||||||
|
-------
|
||||||
|
Location: vimrc
|
||||||
|
Profile: profile
|
||||||
|
Controls: 4
|
||||||
|
Timestamp: 2019-06-24T23:09:01+00:00
|
||||||
|
Valid: true
|
||||||
|
|
||||||
|
Errors
|
||||||
|
------
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
--------
|
||||||
|
```
|
||||||
|
|
||||||
|
## Execute a profile
|
||||||
|
|
||||||
|
To run all **supported** controls on a local machine use `inspec exec /path/to/profile`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ inspec exec vimrc
|
||||||
|
..
|
||||||
|
|
||||||
|
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
||||||
|
8 examples, 0 failures
|
||||||
|
```
|
||||||
|
|
||||||
|
## Execute a specific control from a profile
|
||||||
|
|
||||||
|
To run one control from the profile use `inspec exec /path/to/profile --controls name`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ inspec exec vimrc --controls package
|
||||||
|
.
|
||||||
|
|
||||||
|
Finished in 0.0025 seconds (files took 0.12449 seconds to load)
|
||||||
|
1 examples, 0 failures
|
||||||
|
```
|
||||||
|
|
||||||
|
See an [example control here](https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb).
|
|
@ -0,0 +1,11 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
control 'vimrc is managed' do
|
||||||
|
title 'formula should manage .vimrc'
|
||||||
|
|
||||||
|
describe file('/home/vim_user/.vimrc') do
|
||||||
|
it { should be_owned_by 'vim_user' }
|
||||||
|
its('mode') { should cmp '0644' }
|
||||||
|
its('content') { should match(/syntax on/) }
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,18 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: ft=yaml
|
||||||
|
---
|
||||||
|
name: vimrc
|
||||||
|
title: users formula
|
||||||
|
maintainer: SaltStack Formulas
|
||||||
|
license: Apache-2.0
|
||||||
|
summary: Verify that the `.vimrc` file is configured correctly for specified users
|
||||||
|
supports:
|
||||||
|
- platform-name: debian
|
||||||
|
- platform-name: ubuntu
|
||||||
|
- platform-name: centos
|
||||||
|
- platform-name: fedora
|
||||||
|
- platform-name: opensuse
|
||||||
|
- platform-name: suse
|
||||||
|
- platform-name: freebsd
|
||||||
|
- platform-name: amazon
|
||||||
|
- platform-name: arch
|
|
@ -2,7 +2,6 @@
|
||||||
# vim: ft=yaml
|
# vim: ft=yaml
|
||||||
---
|
---
|
||||||
users-formula:
|
users-formula:
|
||||||
use_vim_formula: true
|
|
||||||
lookup: # override the defauls in map.jinja
|
lookup: # override the defauls in map.jinja
|
||||||
root_group: root
|
root_group: root
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: ft=yaml
|
||||||
|
---
|
||||||
|
users-formula:
|
||||||
|
use_vim_formula: true
|
||||||
|
|
||||||
|
users:
|
||||||
|
## Minimal required pillar values
|
||||||
|
vim_user:
|
||||||
|
fullname: Vim User
|
||||||
|
manage_vimrc: true
|
|
@ -1,3 +1,9 @@
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" File managed by Salt at <{{ source }}>.
|
||||||
|
" Your changes will be overwritten.
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
"
|
||||||
|
{% raw -%}
|
||||||
" URL: http://vim.wikia.com/wiki/Example_vimrc
|
" URL: http://vim.wikia.com/wiki/Example_vimrc
|
||||||
" Authors: http://vim.wikia.com/wiki/Vim_on_Freenode
|
" Authors: http://vim.wikia.com/wiki/Vim_on_Freenode
|
||||||
" Description: A minimal, but feature rich, example .vimrc. If you are a
|
" Description: A minimal, but feature rich, example .vimrc. If you are a
|
||||||
|
@ -158,3 +164,4 @@ nnoremap <C-L> :nohl<CR><C-L>
|
||||||
|
|
||||||
|
|
||||||
"------------------------------------------------------------
|
"------------------------------------------------------------
|
||||||
|
{%- endraw %}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{% from "users/map.jinja" import users with context %}
|
{% from "users/map.jinja" import users with context %}
|
||||||
|
|
||||||
{% if users.use_vim_formula %}
|
{% if salt['pillar.get']('users-formula:use_vim_formula', False) %}
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- users
|
- users
|
||||||
|
|
Loading…
Reference in New Issue