fix(vimrc): ensure `vimrc` state runstags/v0.48.4
## 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 |
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 |
# 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). |
# 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 |
# -*- 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 |
# 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 | ||||
# -*- 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 |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |||||
" 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 | ||||
"------------------------------------------------------------ | "------------------------------------------------------------ | ||||
{%- endraw %} |
{% 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 |