# Snippets for use with VIM and http://www.vim.org/scripts/script.php?script_id=2540 # # Please contact Jorge Vidal for additions and feedback, # see it in action @ http://www.devco.net/archives/2009/09/22/vim_and_puppet.php # Many thanks to the original author R.I.Pienaar # Header using Puppet Strings (YARD tags) https://puppet.com/docs/puppet/latest/modules_documentation.html # More info: https://github.com/puppetlabs/puppet-strings snippet classheader # ${1:`vim_snippets#Filename(substitute(expand('%:p:s?\v.{-}/(\w+)/manifests/(.+)\.pp?\1/\2?'), '/', '::', 'g'), 'class-name')`} # ${2:A description of what this class does} # # @summary ${3:A short summary of the purpose of this class} # # @param ${4:parameter1} # ${6:Explanation of what this parameter affects.} # # @example Simple use # include $1 # # @example Use with params # class { '$1': # $$4 => '${7:undef}', # } # # @author ${8:`g:snips_author`} <${9:`g:snips_email`}> # # @note Copyright `strftime("%Y")` $8 # class $1( ${5:String} $$4 = undef, ) { ${0} } snippet defheader # ${1:`vim_snippets#Filename(expand('%:p:s?.*modules/??:h:h'), 'define-name')`} # ${2:A description of what this define does} # # @summary ${3:A short summary of the purpose of this define} # # @param ${4:parameter1} [${5:String}] # ${6:Explanation of what this parameter affects.} # # @example Simple use # $1 { 'namevar': # $$4 => '${7:undef}', # } # # @author ${8:`g:snips_author`} <${9:`g:snips_email`}> # # @note Copyright `strftime("%Y")` $8 # define $1( $$4 = undef, ) { ${0} } # Language Constructs snippet class class ${1:`vim_snippets#Filename('', 'name')`} { ${0} } snippet node node "${1:`vim_snippets#Filename('', 'fqdn')`}" { ${0} } snippet case case $${1:variable} { default: { ${0} } } snippet ife if $${1:variable} { ${2} } else { ${0} } snippet if if $${1:variable} { ${0} } snippet ifd if defined(${1:Resource}["${2:name}"]) { ${0} } snippet ifnd if !defined(${1:Resource}["${2:name}"]) { ${0} } snippet el else { ${0} } snippet ? ? { "${1}" => ${0} } # # blocks etc and general syntax sugar snippet [ [ ${1} ] snippet > ${1} => ${0} snippet p: "puppet://puppet/${1:module name}/${0:file name}" # # Functions snippet alert alert("${1:message}") snippet crit crit("${1:message}") snippet debug debug("${1:message}") snippet defined defined(${1:Resource}["${2:name}"]) snippet emerg emerg("${1:message}") snippet extlookup Simple extlookup extlookup("${1:variable}") snippet extlookup Extlookup with defaults extlookup("${1:variable}", "${2:default}") snippet extlookup Extlookup with defaults and custom data file extlookup("${1:variable}", "${2:default}", "${3:data source}") snippet fail fail("${1:message}") snippet info info("${1:message}") snippet inline_template inline_template("<%= ${1} %>") snippet notice notice("${1:message}") snippet realize realize(${1:Resource}[${2:name}]) snippet regsubst regsubst(${1:hay stack}, ${2:needle}, "${3:replacement}") snippet inc include ${1:classname} snippet split split(${1:hay stack}, "${2:patten}") snippet versioncmp versioncmp("${1:version}", "${2:version}") snippet warning warning("${1:message}") # # Types snippet cron cron { "${1:name}": command => "${2}", user => "${3:root}", ${4} => ${0}, } snippet exec exec { "${1:name}": command => "${2:$1}", user => "${3:root}", ${4} => ${0}, } snippet user user { "${1:user}": ensure => present, comment => "${2:$1}", managehome => true, home => "${0:/home/$1}", } snippet group group { "${1:group}": ensure => ${0:present}, } snippet host host { "${1:hostname}": ip => ${0:127.0.0.1}, } snippet mailalias mailalias { "${1:localpart}": recipient => "${0:recipient}", } snippet mount mount { "${1:destination path}": ensure => ${2:mounted}, device => "${0:device name or path}", } snippet notify notify { "${1:message}": } snippet package package { "${1:package name}": ensure => ${0:present}, } snippet yumrepo yumrepo { "${1:repo name}": descr => "${2:$1}", enabled => ${0:1}, } snippet define define ${1} (${2}) { ${0} } snippet service service { "${1:service}": ensure => running, enable => true, require => [ Package["${2:package}"], File["${3:file}"], ], subscribe => [ File["${4:configfile1}"], File["${5:configfile2}"], Package["${6:package}"], ], } snippet file file { "${1:filename}": ensure => ${2:present}, owner => "${3:root}", group => "${4:root}", mode => "${5:0644}", source => "puppet:///modules/${6:module}/${7:source}", content => template("${8:module}/${9:template}"), alias => "${10:alias}", require => [ Package["${11:package}"], File["${12:file}"], ], } snippet archive archive { "${1:filename}": ensure => ${2:present}, url => "http://${3:url}", extension => "${4:tgz}", target => "${5:target}", checksum => ${6:false}, src_target => "${7:/tmp}", } snippet firewall firewall { "${1:comment}": proto => ${2:tcp}, action => ${3:accept}, port => ${4}, }