onceover-codequality 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +20 -1
- data/lib/onceover/codequality/cli.rb +12 -1
- data/lib/onceover/codequality/docs.rb +23 -0
- data/lib/onceover/codequality/syntax.rb +8 -1
- data/lib/onceover/codequality/version.rb +1 -1
- data/onceover-codequality.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fd0fa7b9afbcebd806a148ee5f9550f7d0fb240
|
4
|
+
data.tar.gz: 1751c2747cd62a34dc3e49f253eaa2ac14e49929
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 829ea5f9e914b9a4527c975ec9db4832f60c91eb8c6f7ccc9afd7a73de46032c40afc7f40599bc6fd35712c7f95415e4dabb9659c65ea786c270d1784f7ba95f
|
7
|
+
data.tar.gz: 39cec48a3ff533236403f183badcaccedae5c6c20ad6229685177d998607291e4daca7c7d893ea2b9b66fe4036337485fb121058176d597bcb26c34d30e5aa5d
|
data/README.md
CHANGED
@@ -8,6 +8,8 @@ The plugin checks your control repository for:
|
|
8
8
|
* Linting
|
9
9
|
* Syntax
|
10
10
|
|
11
|
+
And then generates documentation using [Puppet Strings](https://github.com/puppetlabs/puppet-strings/)
|
12
|
+
|
11
13
|
For sure you can hack around with rake/make and hack something up each time but aint nobody got time for that!
|
12
14
|
|
13
15
|
## Installation
|
@@ -43,6 +45,13 @@ $onceover run codequality --no_lint
|
|
43
45
|
$ onceover run codequality --no_syntax
|
44
46
|
```
|
45
47
|
|
48
|
+
**Skip documentation generation**
|
49
|
+
|
50
|
+
```shell
|
51
|
+
$ onceover run codequality --no_doc
|
52
|
+
```
|
53
|
+
|
54
|
+
|
46
55
|
## Sample output
|
47
56
|
|
48
57
|
**All clear**
|
@@ -103,7 +112,17 @@ $ bundle exec onceover run codequality
|
|
103
112
|
**What are you using under-the-hood?**
|
104
113
|
|
105
114
|
* [puppet-lint](https://github.com/rodjek/puppet-lint)
|
106
|
-
* [puppet-syntax](https://github.com/voxpupuli/puppet-syntax)
|
115
|
+
* [puppet-syntax](https://github.com/voxpupuli/puppet-syntax)
|
116
|
+
* [puppet-strings](https://github.com/puppetlabs/puppet-strings/)
|
117
|
+
|
118
|
+
|
119
|
+
**My docs change a ton of files every time I run?**
|
120
|
+
This is because the timestamp is embedded inside the generated docs by default. This is fixed in the master branch of Puppet Strings which has not been released as a gem yet. You can reference the fixed version in your control repository Gemfile, like this:
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
gem 'puppet-strings',
|
124
|
+
:git => 'https://github.com/puppetlabs/puppet-strings'
|
125
|
+
```
|
107
126
|
|
108
127
|
## Development
|
109
128
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require "onceover/codequality/lint"
|
2
2
|
require "onceover/codequality/syntax"
|
3
|
+
require "onceover/codequality/docs"
|
3
4
|
class Onceover
|
4
5
|
module CodeQuality
|
5
6
|
class CLI
|
@@ -7,7 +8,7 @@ class Onceover
|
|
7
8
|
def self.command
|
8
9
|
@cmd ||= Cri::Command.define do
|
9
10
|
name 'codequality'
|
10
|
-
usage 'codequality [--no-lint] [--no-
|
11
|
+
usage 'codequality [--no-syntax] [--no-lint] [--no-docs]'
|
11
12
|
summary "Code Quality checking for onceover"
|
12
13
|
description <<-DESCRIPTION
|
13
14
|
Check files in your Control Repository for Lint and Syntax errors
|
@@ -15,10 +16,12 @@ Check files in your Control Repository for Lint and Syntax errors
|
|
15
16
|
|
16
17
|
option :l, :no_lint, 'Do not check for lint errors', :argument => :optional
|
17
18
|
option :x, :no_syntax, 'Do not check for syntax errors', :argument => :optional
|
19
|
+
option :d, :no_docs, 'Do not generate documentation (puppet-strings) for local modules', :argument => :optional
|
18
20
|
|
19
21
|
run do |opts, args, cmd|
|
20
22
|
no_lint = opts[:no_lint] || false
|
21
23
|
no_syntax = opts[:no_syntax] || false
|
24
|
+
no_docs = opts[:no_docs] || false
|
22
25
|
status = true
|
23
26
|
if ! no_lint
|
24
27
|
logger.info "Checking for lint..."
|
@@ -36,6 +39,14 @@ Check files in your Control Repository for Lint and Syntax errors
|
|
36
39
|
end
|
37
40
|
end
|
38
41
|
|
42
|
+
if ! no_docs
|
43
|
+
logger.info "Generating documentation..."
|
44
|
+
if ! Onceover::CodeQuality::Docs.puppet_strings
|
45
|
+
status = false
|
46
|
+
logger.error "Documentation generation failed, see previous errors"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
39
50
|
if status
|
40
51
|
logger.info "Code Quality tests passed, have a nice day"
|
41
52
|
else
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Support for generating documentation using Puppet Strings for each module
|
2
|
+
# listed in the site directory
|
3
|
+
class Onceover
|
4
|
+
module CodeQuality
|
5
|
+
module Docs
|
6
|
+
LOCAL_MOD_DIR = "site"
|
7
|
+
|
8
|
+
def self.puppet_strings
|
9
|
+
status = true
|
10
|
+
if Dir.exist?(LOCAL_MOD_DIR)
|
11
|
+
Dir.glob("#{LOCAL_MOD_DIR}/*/") { |dir|
|
12
|
+
Dir.chdir(dir) {
|
13
|
+
status &= system("puppet strings")
|
14
|
+
}
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
status
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,9 +4,16 @@ class Onceover
|
|
4
4
|
module CodeQuality
|
5
5
|
module Syntax
|
6
6
|
def self.puppet
|
7
|
+
status = true
|
8
|
+
if File.exist?("Puppetfile")
|
9
|
+
status &= system("r10k puppetfile check")
|
10
|
+
else
|
11
|
+
logger.warn("No Puppetfile found... continuing")
|
12
|
+
end
|
13
|
+
|
7
14
|
# rake task contains an exit statement so run it in a subshell to
|
8
15
|
# capture and continue
|
9
|
-
status
|
16
|
+
status &= system(
|
10
17
|
"ruby << EOD
|
11
18
|
require 'puppet-syntax/tasks/puppet-syntax'
|
12
19
|
Rake::Task['syntax'].invoke
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onceover-codequality
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Declarative Systems
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '2'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: puppet-strings
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1'
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- sales@declarativesystems.com
|
@@ -112,6 +126,7 @@ files:
|
|
112
126
|
- bin/setup
|
113
127
|
- lib/onceover/codequality.rb
|
114
128
|
- lib/onceover/codequality/cli.rb
|
129
|
+
- lib/onceover/codequality/docs.rb
|
115
130
|
- lib/onceover/codequality/lint.rb
|
116
131
|
- lib/onceover/codequality/syntax.rb
|
117
132
|
- lib/onceover/codequality/version.rb
|