onceover-codequality 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|