1
0
Fork 0
mirror of synced 2024-12-27 00:53:20 -05:00
ultimate-vim/bundle/vim-snippets/UltiSnips/puppet.snippets
2014-05-09 21:28:39 +02:00

235 lines
6.1 KiB
Text

priority -50
#########################################################################
# Python helper code #
#########################################################################
global !p
import vim
import os.path
def get_module_namespace_and_basename():
"""This function will try to guess the current class or define name you are
trying to create. Note that for this to work you should be using the module
structure as per the style guide. Examples inputs and it's output
* /home/nikolavp/puppet/modules/collectd/manifests/init.pp -> collectd
* /home/nikolavp/puppet/modules/collectd/manfistes/mysql.pp -> collectd::mysql
"""
first_time = True
current_file_path_without_ext = vim.eval('expand("%:p:r")') or ""
if not current_file_path_without_ext:
return "name"
parts = os.path.split(current_file_path_without_ext)
namespace = ''
while parts[0] and parts[0] != '/':
if parts[1] == 'init' and first_time and not namespace:
first_time = False
parts = os.path.split(parts[0])
continue
if parts[1] == 'manifests':
return os.path.split(parts[0])[1] + ('::' + namespace).rstrip(':')
else:
namespace = parts[1] + '::' + namespace
parts = os.path.split(parts[0])
# couldn't guess the namespace. The user is editing a raw file in no module like the site.pp file
return "name"
endglobal
###############################################################################
# Puppet Language Constructs #
# See http://docs.puppetlabs.com/puppet/latest/reference/lang_summary.html #
###############################################################################
snippet class "Class declaration" b
class ${1:`!p snip.rv = get_module_namespace_and_basename()`} {
${0:# body}
}
endsnippet
snippet define "Definition" b
define ${1:`!p snip.rv = get_module_namespace_and_basename()`} {
${0:# body}
}
endsnippet
#################################################################
# Puppet Types #
# See http://docs.puppetlabs.com/references/latest/type.html #
#################################################################
snippet cron "Cron resource type" b
cron { '${1:name}':
user => ${2:user},
command => '${3:command}',
minute => ${3:minute},
hour => ${4:hour},
}
endsnippet
snippet exec "Exec resource type" b
exec { '${1:command}':
refreshonly => true,
}
endsnippet
snippet file "File resource type" b
file { '${1:name}':
source => "puppet://${2:path}",
mode => ${3:mode},
}
endsnippet
snippet File "Defaults for file" b
File {
owner => ${1:username},
group => ${2:groupname},
}
endsnippet
snippet group "Group resource type" b
group { '${1:groupname}':
ensure => ${3:present},
gid => ${2:gid},
}
endsnippet
snippet mount "Mount resource type" b
mount { '${1:path}':
device => '${2:/dev}',
fstype => '${3:filesystem}',
ensure => mounted,
options => 'rw,errors=remount-ro',
}
endsnippet
snippet package "Package resource type" b
package { '${1:name}':
ensure => ${2:installed},
}
endsnippet
snippet user "user resource type" b
user { '${1:username}':
ensure => ${2:present},
uid => ${3:uid},
gid => ${4:gid},
comment => ${5:gecos},
home => ${6:homedirectory},
managehome => false,
require => Group['${7:group'}],
}
endsnippet
snippet service "Service resource type" b
service { '${1:name}':
hasstatus => true,
enable => true,
ensure => running,
}
endsnippet
########################################################################
# Puppet Functions #
# See http://docs.puppetlabs.com/references/latest/function.html #
########################################################################
snippet alert "Alert Function" b
alert("${1:message}")${0}
endsnippet
snippet crit "Crit Function" b
crit("${1:message}")${0}
endsnippet
snippet debug "Debug Function" b
debug("${1:message}")${0}
endsnippet
snippet defined "Defined Function" b
defined(${1:Resource}["${2:name}"])${0}
endsnippet
snippet emerg "Emerg Function" b
emerg("${1:message}")${0}
endsnippet
snippet extlookup "Simple Extlookup" b
$${1:Variable} = extlookup("${2:Lookup}")${0}
endsnippet
snippet extlookup "Extlookup with defaults" b
$${1:Variable} = extlookup("${2:Lookup}", ${3:Default})${0}
endsnippet
snippet extlookup "Extlookup with defaults and custom data file" b
$${1:Variable} = extlookup("${2:Lookup}", ${3:Default}, ${4:Data Source})${0}
endsnippet
snippet fail "Fail Function" b
fail("${1:message}")${0}
endsnippet
snippet hiera "Hiera Function" b
$${1:Variable} = hiera("${2:Lookup}")${0}
endsnippet
snippet hiera "Hiera with defaults" b
$${1:Variable} = hiera("${2:Lookup}", ${3:Default})${0}
endsnippet
snippet hiera "Hiera with defaults and override" b
$${1:Variable} = hiera("${2:Lookup}", ${3:Default}, ${4:Override})${0}
endsnippet
snippet hiera_hash "Hiera Hash Function" b
$${1:Variable} = hiera_hash("${2:Lookup}")${0}
endsnippet
snippet hiera_hash "Hiera Hash with defaults" b
$${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default})${0}
endsnippet
snippet hiera_hash "Hiera Hash with defaults and override" b
$${1:Variable} = hiera_hash("${2:Lookup}", ${3:Default}, ${4:Override})${0}
endsnippet
snippet hiera_include "Hiera Include Function" b
hiera_include("${1:Lookup}")${0}
endsnippet
snippet include "Include Function" b
include ${1:classname}${0}
endsnippet
snippet info "Info Function" b
info("${1:message}")${0}
endsnippet
snippet inline_template "Inline Template Function" b
inline_template("<%= ${1:template} %>")${0}
endsnippet
snippet notice "Notice Function" b
notice("${1:message}")${0}
endsnippet
snippet realize "Realize Function" b
realize(${1:Resource}["${2:name}"])${0}
endsnippet
snippet regsubst "Regsubst Function" b
regsubst($${1:Target}, '${2:regexp}', '${3:replacement}')${0}
endsnippet
snippet split "Split Function" b
$${1:Variable} = split($${1:Target}, '${2:regexp}')${0}
endsnippet
snippet versioncmp "Version Compare Function" b
$${1:Variable} = versioncmp('${1:version}', '${2:version}')${0}
endsnippet
snippet warning "Warning Function" b
warning("${1:message}")${0}
endsnippet
# vim:ft=snippets: