Merge branch 'kelvix-feat/puppet'

This commit is contained in:
Glavin Wiechert 2015-08-05 12:17:17 -03:00
commit 5a0d37f5d7
9 changed files with 376 additions and 0 deletions

View File

@ -36,6 +36,7 @@ before_install:
# - gem install ruby-beautify --verbose # - gem install ruby-beautify --verbose
- gem install rubocop - gem install rubocop
- gem install htmlbeautifier - gem install htmlbeautifier
- gem install puppet-lint
# Python language support # Python language support
- brew install python - brew install python
- pip install --upgrade autopep8 - pip install --upgrade autopep8

View File

@ -85,6 +85,9 @@ install:
# HTMLBeautifier # HTMLBeautifier
- gem install htmlbeautifier - gem install htmlbeautifier
- where htmlbeautifier - where htmlbeautifier
# Puppet-Lint
- gem install puppet-lint
- where puppet-lint
# emacs # emacs
- cinst emacs -y - cinst emacs -y

View File

@ -273,6 +273,34 @@ If lists of assignments or properties should be vertically aligned for faster an
Path to uncrustify config file. i.e. uncrustify.cfg (Supported by Uncrustify) Path to uncrustify config file. i.e. uncrustify.cfg (Supported by Uncrustify)
#### [gherkin - Indent size](#gherkin---indent-size)
**Key**: `gherkin_indent_size`
**Default**: `4`
**Type**: `integer`
**Supported Beautifiers**: [`Gherkin formatter`](#gherkin-formatter)
**Description**:
Indentation size/length (Supported by Gherkin formatter)
#### [gherkin - Indent char](#gherkin---indent-char)
**Key**: `gherkin_indent_char`
**Default**: ` `
**Type**: `string`
**Supported Beautifiers**: [`Gherkin formatter`](#gherkin-formatter)
**Description**:
Indentation character (Supported by Gherkin formatter)
#### [Fortran - Emacs path](#fortran---emacs-path) #### [Fortran - Emacs path](#fortran---emacs-path)
**Key**: `fortran_emacs_path` **Key**: `fortran_emacs_path`
@ -1263,6 +1291,40 @@ Default Beautifier to be used for ERB
Automatically beautify ERB files on save Automatically beautify ERB files on save
#### [Language Config - gherkin - Disable Beautifying Language](#language-config---gherkin---disable-beautifying-language)
**Key**: `language_gherkin_disabled`
**Type**: `boolean`
**Description**:
Disable gherkin Beautification
#### [Language Config - gherkin - Default Beautifier](#language-config---gherkin---default-beautifier)
**Key**: `language_gherkin_default_beautifier`
**Default**: `Gherkin formatter`
**Type**: `string`
**Enum**: `Gherkin formatter`
**Description**:
Default Beautifier to be used for gherkin
#### [Language Config - gherkin - Beautify On Save](#language-config---gherkin---beautify-on-save)
**Key**: `language_gherkin_beautify_on_save`
**Type**: `boolean`
**Description**:
Automatically beautify gherkin files on save
#### [Language Config - Go - Disable Beautifying Language](#language-config---go---disable-beautifying-language) #### [Language Config - Go - Disable Beautifying Language](#language-config---go---disable-beautifying-language)
**Key**: `language_go_disabled` **Key**: `language_go_disabled`
@ -1807,6 +1869,40 @@ Default Beautifier to be used for PHP
Automatically beautify PHP files on save Automatically beautify PHP files on save
#### [Language Config - Puppet - Disable Beautifying Language](#language-config---puppet---disable-beautifying-language)
**Key**: `language_puppet_disabled`
**Type**: `boolean`
**Description**:
Disable Puppet Beautification
#### [Language Config - Puppet - Default Beautifier](#language-config---puppet---default-beautifier)
**Key**: `language_puppet_default_beautifier`
**Default**: `puppet-lint`
**Type**: `string`
**Enum**: `puppet-lint`
**Description**:
Default Beautifier to be used for Puppet
#### [Language Config - Puppet - Beautify On Save](#language-config---puppet---beautify-on-save)
**Key**: `language_puppet_beautify_on_save`
**Type**: `boolean`
**Description**:
Automatically beautify Puppet files on save
#### [Language Config - Python - Disable Beautifying Language](#language-config---python---disable-beautifying-language) #### [Language Config - Python - Disable Beautifying Language](#language-config---python---disable-beautifying-language)
**Key**: `language_python_disabled` **Key**: `language_python_disabled`
@ -3157,6 +3253,37 @@ Add a space before an anonymous function's parens, ie. function () (Support
Wrap lines at next opportunity after N characters (Supported by JS Beautify, Pretty Diff) Wrap lines at next opportunity after N characters (Supported by JS Beautify, Pretty Diff)
### Gherkin formatter
#### [gherkin - Indent size](#gherkin---indent-size)
**Key**: `gherkin_indent_size`
**Default**: `4`
**Type**: `integer`
**Supported Beautifiers**: [`Gherkin formatter`](#gherkin-formatter)
**Description**:
Indentation size/length (Supported by Gherkin formatter)
#### [gherkin - Indent char](#gherkin---indent-char)
**Key**: `gherkin_indent_char`
**Default**: ` `
**Type**: `string`
**Supported Beautifiers**: [`Gherkin formatter`](#gherkin-formatter)
**Description**:
Indentation character (Supported by Gherkin formatter)
### Fortran Beautifier ### Fortran Beautifier
#### [Fortran - Emacs path](#fortran---emacs-path) #### [Fortran - Emacs path](#fortran---emacs-path)

View File

@ -0,0 +1,95 @@
# Define quantum::generic_service
#
# This class implements basic ceilomer services.
# It is derived from https://github.com/stackforge/puppet-quantum/blob/master/manifests/generic_service.pp
#
define quantum::generic_service (
$package_name = '',
$package_ensure = 'present',
$service_name = '',
$service_ensure = 'running',
$service_enable = true,
$config_file_path = undef,
$config_file_notify = 'default',
$config_file_require = 'default',
$config_file_replace = undef,
$config_file_source = undef,
$config_file_template = undef,
$config_file_content = undef,
$config_file_options_hash = { },
$config_dir_path = '/etc/quantum',
) {
$distro_prefix = $::osfamily ? {
RedHat => 'openstack-',
Debian => '',
}
$manage_package_name = pickx($package_name, "${distro_prefix}${name}")
$manage_service_name = pickx($service_name, "${distro_prefix}${name}")
$manage_config_file_path = pickx($config_file_path, "${config_dir_path}/${name}.conf")
$manage_config_file_content = default_content($config_file_content, $config_file_template)
$manage_config_file_notify = $config_file_notify ? {
'default' => "Service[${name}]",
'' => undef,
default => $config_file_notify,
}
$manage_config_file_require = $config_file_require ? {
'default' => "Package[${name}]",
default => $config_file_require,
}
if $package_ensure == 'absent' {
$manage_service_enable = undef
$manage_service_ensure = stopped
$config_file_ensure = absent
} else {
$manage_service_enable = $service_enable ? {
'' => undef,
'undef' => undef,
default => $service_enable,
}
$manage_service_ensure = $service_ensure ? {
'' => undef,
'undef' => undef,
default => $service_ensure,
}
$config_file_ensure = present
}
if ($manage_package_name) {
package { $name:
ensure => $package_ensure,
name => $manage_package_name,
}
}
if ($manage_service_name) {
service { $name:
ensure => $manage_service_ensure,
name => $manage_service_name,
enable => $manage_service_enable,
require => Package[$manage_package_name],
}
}
if $config_file_source
or $manage_config_file_content {
file { "${name}.conf":
ensure => $config_file_ensure,
path => $manage_config_file_path,
mode => $config_file_mode,
owner => $config_file_owner,
group => $config_file_group,
source => $config_file_source,
content => $manage_config_file_content,
notify => $manage_config_file_notify,
require => $manage_config_file_require,
}
}
}

View File

@ -0,0 +1,95 @@
# Define quantum::generic_service
#
# This class implements basic ceilomer services.
# It is derived from https://github.com/stackforge/puppet-quantum/blob/master/manifests/generic_service.pp
#
define quantum::generic_service (
$package_name = '',
$package_ensure = 'present',
$service_name = '',
$service_ensure = 'running',
$service_enable = true,
$config_file_path = undef,
$config_file_notify = 'default',
$config_file_require = 'default',
$config_file_replace = undef,
$config_file_source = undef,
$config_file_template = undef,
$config_file_content = undef,
$config_file_options_hash = { },
$config_dir_path = '/etc/quantum',
) {
$distro_prefix = $::osfamily ? {
RedHat => 'openstack-',
Debian => '',
}
$manage_package_name = pickx($package_name, "${distro_prefix}${name}")
$manage_service_name = pickx($service_name, "${distro_prefix}${name}")
$manage_config_file_path = pickx($config_file_path, "${config_dir_path}/${name}.conf")
$manage_config_file_content = default_content($config_file_content, $config_file_template)
$manage_config_file_notify = $config_file_notify ? {
'default' => "Service[${name}]",
'' => undef,
default => $config_file_notify,
}
$manage_config_file_require = $config_file_require ? {
'default' => "Package[${name}]",
default => $config_file_require,
}
if $package_ensure == 'absent' {
$manage_service_enable = undef
$manage_service_ensure = stopped
$config_file_ensure = absent
} else {
$manage_service_enable = $service_enable ? {
'' => undef,
'undef' => undef,
default => $service_enable,
}
$manage_service_ensure = $service_ensure ? {
'' => undef,
'undef' => undef,
default => $service_ensure,
}
$config_file_ensure = present
}
if ($manage_package_name) {
package { $name:
ensure => $package_ensure,
name => $manage_package_name,
}
}
if ($manage_service_name) {
service { $name:
ensure => $manage_service_ensure,
name => $manage_service_name,
enable => $manage_service_enable,
require => Package[$manage_package_name],
}
}
if $config_file_source
or $manage_config_file_content {
file { "${name}.conf":
ensure => $config_file_ensure,
path => $manage_config_file_path,
mode => $config_file_mode,
owner => $config_file_owner,
group => $config_file_group,
source => $config_file_source,
content => $manage_config_file_content,
notify => $manage_config_file_notify,
require => $manage_config_file_require,
}
}
}

View File

@ -47,6 +47,7 @@ module.exports = class Beautifiers extends EventEmitter
'perltidy' 'perltidy'
'php-cs-fixer' 'php-cs-fixer'
'prettydiff' 'prettydiff'
'puppet-fix'
'rubocop' 'rubocop'
'ruby-beautify' 'ruby-beautify'
'rustfmt' 'rustfmt'

View File

@ -0,0 +1,34 @@
###
Requires [puppet-link](http://puppet-lint.com/)
###
"use strict"
Beautifier = require('./beautifier')
module.exports = class PuppetFix extends Beautifier
# this is what displays as your Default Beautifier in Language Config
name: "puppet-lint"
options: {
Puppet: true
}
cli: (options) ->
if not options.puppet_path?
return new Error("'puppet-lint' path is not set!" +
" Please set this in the Atom Beautify package settings.")
else
return options.puppet_path
beautify: (text, language, options) ->
@run("puppet-lint", [
'--fix'
tempFile = @tempFile("input", text)
], {
ignoreReturnCode: true
help: {
link: "http://puppet-lint.com/"
}
})
.then(=>
@readFile(tempFile)
)

View File

@ -39,6 +39,7 @@ module.exports = class Languages
"pawn" "pawn"
"perl" "perl"
"php" "php"
"puppet"
"python" "python"
"ruby" "ruby"
"rust" "rust"

View File

@ -0,0 +1,19 @@
module.exports = {
name: "Puppet"
namespace: "puppet"
###
Supported Grammars
###
grammars: [
"Puppet"
]
###
Supported extensions
###
extensions: [
"pp"
]
}