puppet 0.9.2 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +58 -0
- data/README +21 -18
- data/Rakefile +176 -36
- data/bin/puppet +34 -48
- data/bin/puppetca +41 -28
- data/bin/puppetd +87 -65
- data/bin/puppetdoc +99 -23
- data/bin/puppetmasterd +72 -91
- data/conf/redhat/client.init +80 -0
- data/conf/redhat/client.sysconfig +11 -0
- data/conf/redhat/fileserver.conf +12 -0
- data/conf/redhat/puppet.spec +130 -0
- data/conf/redhat/server.init +89 -0
- data/conf/redhat/server.sysconfig +9 -0
- data/examples/code/allatonce +2 -2
- data/examples/code/assignments +1 -1
- data/examples/code/classing +2 -2
- data/examples/code/components +2 -2
- data/examples/code/file.bl +5 -5
- data/examples/code/filedefaults +2 -2
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +2 -2
- data/examples/code/simpletests +5 -5
- data/examples/code/snippets/argumentdefaults +2 -2
- data/examples/code/snippets/casestatement +16 -8
- data/examples/code/snippets/classheirarchy.pp +4 -4
- data/examples/code/snippets/classincludes.pp +4 -4
- data/examples/code/snippets/classpathtest +2 -2
- data/examples/code/snippets/componentmetaparams.pp +11 -0
- data/examples/code/snippets/dirchmod +5 -5
- data/examples/code/snippets/emptyclass.pp +9 -0
- data/examples/code/snippets/failmissingexecpath.pp +1 -1
- data/examples/code/snippets/falsevalues.pp +1 -1
- data/examples/code/snippets/filecreate +5 -5
- data/examples/code/snippets/implicititeration +5 -5
- data/examples/code/snippets/multipleinstances +4 -4
- data/examples/code/snippets/namevartest +3 -3
- data/examples/code/snippets/scopetest +1 -1
- data/examples/code/snippets/selectorvalues.pp +3 -3
- data/examples/code/snippets/simpledefaults +2 -2
- data/examples/code/snippets/simpleselector +5 -5
- data/examples/code/snippets/singleary.pp +19 -0
- data/examples/root/etc/init.d/sleeper +3 -2
- data/ext/emacs/puppet-mode-init.el +6 -0
- data/ext/emacs/puppet-mode.el +189 -0
- data/ext/ldap/puppet.schema +17 -0
- data/ext/{module:puppet → module_puppet} +30 -31
- data/ext/vim/filetype.vim +9 -0
- data/ext/vim/puppet.vim +87 -0
- data/install.rb +63 -30
- data/lib/puppet.rb +216 -122
- data/lib/puppet/client.rb +51 -416
- data/lib/puppet/client/ca.rb +17 -0
- data/lib/puppet/client/dipper.rb +78 -0
- data/lib/puppet/client/file.rb +20 -0
- data/lib/puppet/client/log.rb +17 -0
- data/lib/puppet/client/master.rb +246 -0
- data/lib/puppet/client/proxy.rb +27 -0
- data/lib/puppet/client/status.rb +7 -0
- data/lib/puppet/config.rb +563 -13
- data/lib/puppet/daemon.rb +50 -22
- data/lib/puppet/element.rb +4 -4
- data/lib/puppet/event-loop.rb +1 -0
- data/lib/puppet/event-loop/better-definers.rb +367 -0
- data/lib/puppet/event-loop/event-loop.rb +355 -0
- data/lib/puppet/event-loop/signal-system.rb +220 -0
- data/lib/puppet/event.rb +9 -11
- data/lib/puppet/filetype.rb +195 -0
- data/lib/puppet/log.rb +35 -12
- data/lib/puppet/metric.rb +2 -2
- data/lib/puppet/networkclient.rb +145 -0
- data/lib/puppet/parameter.rb +335 -0
- data/lib/puppet/parser/ast.rb +42 -1453
- data/lib/puppet/parser/ast/astarray.rb +88 -0
- data/lib/puppet/parser/ast/branch.rb +47 -0
- data/lib/puppet/parser/ast/caseopt.rb +66 -0
- data/lib/puppet/parser/ast/casestatement.rb +78 -0
- data/lib/puppet/parser/ast/classdef.rb +78 -0
- data/lib/puppet/parser/ast/compdef.rb +111 -0
- data/lib/puppet/parser/ast/component.rb +105 -0
- data/lib/puppet/parser/ast/hostclass.rb +82 -0
- data/lib/puppet/parser/ast/leaf.rb +86 -0
- data/lib/puppet/parser/ast/node.rb +103 -0
- data/lib/puppet/parser/ast/nodedef.rb +68 -0
- data/lib/puppet/parser/ast/objectdef.rb +336 -0
- data/lib/puppet/parser/ast/objectparam.rb +30 -0
- data/lib/puppet/parser/ast/objectref.rb +76 -0
- data/lib/puppet/parser/ast/selector.rb +60 -0
- data/lib/puppet/parser/ast/typedefaults.rb +45 -0
- data/lib/puppet/parser/ast/vardef.rb +44 -0
- data/lib/puppet/parser/interpreter.rb +31 -14
- data/lib/puppet/parser/lexer.rb +2 -4
- data/lib/puppet/parser/parser.rb +332 -242
- data/lib/puppet/parser/scope.rb +55 -38
- data/lib/puppet/server.rb +43 -44
- data/lib/puppet/server/authstore.rb +3 -6
- data/lib/puppet/server/ca.rb +5 -2
- data/lib/puppet/server/filebucket.rb +2 -4
- data/lib/puppet/server/fileserver.rb +28 -12
- data/lib/puppet/server/logger.rb +15 -4
- data/lib/puppet/server/master.rb +62 -7
- data/lib/puppet/sslcertificates.rb +41 -607
- data/lib/puppet/sslcertificates/ca.rb +291 -0
- data/lib/puppet/sslcertificates/certificate.rb +283 -0
- data/lib/puppet/statechange.rb +6 -1
- data/lib/puppet/storage.rb +67 -56
- data/lib/puppet/transaction.rb +25 -9
- data/lib/puppet/transportable.rb +102 -22
- data/lib/puppet/type.rb +1096 -315
- data/lib/puppet/type/component.rb +30 -21
- data/lib/puppet/type/cron.rb +409 -448
- data/lib/puppet/type/exec.rb +234 -174
- data/lib/puppet/type/group.rb +65 -82
- data/lib/puppet/type/nameservice.rb +247 -3
- data/lib/puppet/type/nameservice/netinfo.rb +29 -40
- data/lib/puppet/type/nameservice/objectadd.rb +52 -66
- data/lib/puppet/type/nameservice/posix.rb +6 -194
- data/lib/puppet/type/package.rb +447 -295
- data/lib/puppet/type/package/apt.rb +51 -50
- data/lib/puppet/type/package/bsd.rb +82 -0
- data/lib/puppet/type/package/dpkg.rb +85 -88
- data/lib/puppet/type/package/rpm.rb +67 -63
- data/lib/puppet/type/package/sun.rb +119 -98
- data/lib/puppet/type/package/yum.rb +41 -37
- data/lib/puppet/type/parsedtype.rb +295 -0
- data/lib/puppet/type/parsedtype/host.rb +143 -0
- data/lib/puppet/type/parsedtype/port.rb +232 -0
- data/lib/puppet/type/parsedtype/sshkey.rb +129 -0
- data/lib/puppet/type/pfile.rb +484 -460
- data/lib/puppet/type/pfile/checksum.rb +237 -181
- data/lib/puppet/type/pfile/content.rb +67 -0
- data/lib/puppet/type/pfile/ensure.rb +212 -0
- data/lib/puppet/type/pfile/group.rb +106 -105
- data/lib/puppet/type/pfile/mode.rb +98 -101
- data/lib/puppet/type/pfile/source.rb +228 -209
- data/lib/puppet/type/pfile/type.rb +18 -21
- data/lib/puppet/type/pfile/uid.rb +127 -130
- data/lib/puppet/type/pfilebucket.rb +68 -63
- data/lib/puppet/type/schedule.rb +341 -0
- data/lib/puppet/type/service.rb +351 -255
- data/lib/puppet/type/service/base.rb +9 -14
- data/lib/puppet/type/service/debian.rb +32 -38
- data/lib/puppet/type/service/init.rb +130 -130
- data/lib/puppet/type/service/smf.rb +48 -20
- data/lib/puppet/type/state.rb +229 -16
- data/lib/puppet/type/symlink.rb +51 -63
- data/lib/puppet/type/tidy.rb +105 -102
- data/lib/puppet/type/user.rb +118 -180
- data/lib/puppet/util.rb +100 -6
- data/test/certmgr/certmgr.rb +0 -1
- data/test/client/client.rb +4 -4
- data/test/executables/puppetbin.rb +7 -14
- data/test/executables/puppetca.rb +18 -24
- data/test/executables/puppetd.rb +7 -16
- data/test/executables/puppetmasterd.rb +7 -9
- data/test/executables/puppetmodule.rb +11 -16
- data/test/language/ast.rb +11 -7
- data/test/language/interpreter.rb +1 -1
- data/test/language/scope.rb +2 -0
- data/test/language/snippets.rb +30 -5
- data/test/language/transportable.rb +77 -0
- data/test/other/config.rb +316 -0
- data/test/other/events.rb +22 -21
- data/test/other/log.rb +14 -14
- data/test/other/metrics.rb +4 -8
- data/test/other/overrides.rb +5 -5
- data/test/other/relationships.rb +4 -2
- data/test/other/storage.rb +64 -3
- data/test/other/transactions.rb +20 -20
- data/test/parser/parser.rb +7 -4
- data/test/puppet/conffiles.rb +12 -12
- data/test/puppet/defaults.rb +13 -11
- data/test/puppet/utiltest.rb +14 -11
- data/test/puppettest.rb +156 -48
- data/test/server/bucket.rb +2 -2
- data/test/server/fileserver.rb +6 -6
- data/test/server/logger.rb +19 -11
- data/test/server/master.rb +33 -4
- data/test/server/server.rb +2 -7
- data/test/types/basic.rb +5 -7
- data/test/types/component.rb +22 -18
- data/test/types/cron.rb +111 -44
- data/test/types/exec.rb +116 -59
- data/test/types/file.rb +262 -137
- data/test/types/filebucket.rb +13 -15
- data/test/types/fileignoresource.rb +12 -16
- data/test/types/filesources.rb +73 -48
- data/test/types/filetype.rb +13 -15
- data/test/types/group.rb +15 -13
- data/test/types/host.rb +146 -0
- data/test/types/package.rb +74 -63
- data/test/types/port.rb +139 -0
- data/test/types/query.rb +8 -8
- data/test/types/schedule.rb +335 -0
- data/test/types/service.rb +137 -21
- data/test/types/sshkey.rb +140 -0
- data/test/types/symlink.rb +3 -5
- data/test/types/tidy.rb +5 -14
- data/test/types/type.rb +67 -11
- data/test/types/user.rb +25 -23
- metadata +186 -122
- data/lib/puppet/type/pfile/create.rb +0 -108
- data/lib/puppet/type/pprocess.rb +0 -97
- data/lib/puppet/type/typegen.rb +0 -149
- data/lib/puppet/type/typegen/filerecord.rb +0 -243
- data/lib/puppet/type/typegen/filetype.rb +0 -316
- data/test/other/state.rb +0 -106
@@ -1,15 +1,15 @@
|
|
1
|
-
# $Id: implicititeration
|
1
|
+
# $Id: implicititeration 832 2006-01-17 07:11:50Z luke $
|
2
2
|
|
3
3
|
$files = ["/tmp/iterationatest", "/tmp/iterationbtest"]
|
4
4
|
|
5
|
-
file { $files:
|
5
|
+
file { $files: ensure => file, mode => 755 }
|
6
6
|
|
7
7
|
file { ["/tmp/iterationctest", "/tmp/iterationdtest"]:
|
8
|
-
|
8
|
+
ensure => file,
|
9
9
|
mode => 755
|
10
10
|
}
|
11
11
|
|
12
12
|
file {
|
13
|
-
["/tmp/iterationetest", "/tmp/iterationftest"]:
|
14
|
-
["/tmp/iterationgtest", "/tmp/iterationhtest"]:
|
13
|
+
["/tmp/iterationetest", "/tmp/iterationftest"]: ensure => file, mode => 755;
|
14
|
+
["/tmp/iterationgtest", "/tmp/iterationhtest"]: ensure => file, mode => 755;
|
15
15
|
}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
# $Id: multipleinstances
|
1
|
+
# $Id: multipleinstances 832 2006-01-17 07:11:50Z luke $
|
2
2
|
|
3
3
|
file {
|
4
|
-
"/tmp/multipleinstancesa":
|
5
|
-
"/tmp/multipleinstancesb":
|
6
|
-
"/tmp/multipleinstancesc":
|
4
|
+
"/tmp/multipleinstancesa": ensure => file, mode => 755;
|
5
|
+
"/tmp/multipleinstancesb": ensure => file, mode => 755;
|
6
|
+
"/tmp/multipleinstancesc": ensure => file, mode => 755;
|
7
7
|
}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
define filetest(mode,
|
1
|
+
define filetest(mode, ensure = file) {
|
2
2
|
file { $name:
|
3
3
|
mode => $mode,
|
4
|
-
|
4
|
+
ensure => $ensure
|
5
5
|
}
|
6
6
|
}
|
7
7
|
|
8
8
|
filetest { "/tmp/testfiletest": mode => 644}
|
9
|
-
filetest { "/tmp/testdirtest": mode => 755,
|
9
|
+
filetest { "/tmp/testdirtest": mode => 755, ensure => directory}
|
@@ -17,6 +17,6 @@ $mode3 = $value3 ? {
|
|
17
17
|
default => 644
|
18
18
|
}
|
19
19
|
|
20
|
-
file { "/tmp/selectorvalues1":
|
21
|
-
file { "/tmp/selectorvalues2":
|
22
|
-
file { "/tmp/selectorvalues3":
|
20
|
+
file { "/tmp/selectorvalues1": ensure => file, mode => $mode1 }
|
21
|
+
file { "/tmp/selectorvalues2": ensure => file, mode => $mode2 }
|
22
|
+
file { "/tmp/selectorvalues3": ensure => file, mode => $mode3 }
|
@@ -1,9 +1,9 @@
|
|
1
|
-
# $Id: simpleselector
|
1
|
+
# $Id: simpleselector 832 2006-01-17 07:11:50Z luke $
|
2
2
|
|
3
3
|
$var = "value"
|
4
4
|
|
5
5
|
file { "/tmp/snippetselectatest":
|
6
|
-
|
6
|
+
ensure => file,
|
7
7
|
mode => $var ? {
|
8
8
|
nottrue => 641,
|
9
9
|
value => 755
|
@@ -11,7 +11,7 @@ file { "/tmp/snippetselectatest":
|
|
11
11
|
}
|
12
12
|
|
13
13
|
file { "/tmp/snippetselectbtest":
|
14
|
-
|
14
|
+
ensure => file,
|
15
15
|
mode => $var ? {
|
16
16
|
nottrue => 644,
|
17
17
|
default => 755
|
@@ -21,7 +21,7 @@ file { "/tmp/snippetselectbtest":
|
|
21
21
|
$othervar = "complex value"
|
22
22
|
|
23
23
|
file { "/tmp/snippetselectctest":
|
24
|
-
|
24
|
+
ensure => file,
|
25
25
|
mode => $othervar ? {
|
26
26
|
"complex value" => 755,
|
27
27
|
default => 644
|
@@ -30,7 +30,7 @@ file { "/tmp/snippetselectctest":
|
|
30
30
|
$anothervar = Yayness
|
31
31
|
|
32
32
|
file { "/tmp/snippetselectdtest":
|
33
|
-
|
33
|
+
ensure => file,
|
34
34
|
mode => $anothervar ? {
|
35
35
|
Yayness => 755,
|
36
36
|
default => 644
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# $Id: singleary.pp 841 2006-01-18 17:24:15Z luke $
|
2
|
+
|
3
|
+
file { "/tmp/singleary1":
|
4
|
+
ensure => file
|
5
|
+
}
|
6
|
+
|
7
|
+
file { "/tmp/singleary2":
|
8
|
+
ensure => file
|
9
|
+
}
|
10
|
+
|
11
|
+
file { "/tmp/singleary3":
|
12
|
+
ensure => file,
|
13
|
+
require => [file["/tmp/singleary1"], file["/tmp/singleary2"]]
|
14
|
+
}
|
15
|
+
|
16
|
+
file { "/tmp/singleary4":
|
17
|
+
ensure => file,
|
18
|
+
require => [file["/tmp/singleary1"]]
|
19
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
|
-
# $Id: sleeper
|
3
|
+
# $Id: sleeper 787 2006-01-08 00:02:23Z luke $
|
4
4
|
|
5
5
|
script=$0
|
6
6
|
path=`echo $script | sed 's/etc..*/bin/'`
|
@@ -15,7 +15,8 @@ fi
|
|
15
15
|
|
16
16
|
function start
|
17
17
|
{
|
18
|
-
|
18
|
+
cd $path
|
19
|
+
./sleeper
|
19
20
|
}
|
20
21
|
|
21
22
|
function stop
|
@@ -0,0 +1,189 @@
|
|
1
|
+
;;;
|
2
|
+
;;; puppet-mode.el
|
3
|
+
;;;
|
4
|
+
;;; Author: lutter
|
5
|
+
;;; Description: A simple mode for editing puppet manifests
|
6
|
+
;;;
|
7
|
+
|
8
|
+
(defconst puppet-mode-version "0.0.1")
|
9
|
+
|
10
|
+
(defvar puppet-mode-abbrev-table nil
|
11
|
+
"Abbrev table in use in puppet-mode buffers.")
|
12
|
+
|
13
|
+
(define-abbrev-table 'puppet-mode-abbrev-table ())
|
14
|
+
|
15
|
+
(defvar puppet-mode-map nil "Keymap used in puppet mode.")
|
16
|
+
|
17
|
+
(if puppet-mode-map
|
18
|
+
nil
|
19
|
+
(setq puppet-mode-map (make-sparse-keymap))
|
20
|
+
;; (define-key puppet-mode-map "{" 'puppet-electric-brace)
|
21
|
+
;; (define-key puppet-mode-map "}" 'puppet-electric-brace)
|
22
|
+
;; (define-key puppet-mode-map "\e\C-a" 'puppet-beginning-of-defun)
|
23
|
+
;; (define-key puppet-mode-map "\e\C-e" 'puppet-end-of-defun)
|
24
|
+
;; (define-key puppet-mode-map "\e\C-b" 'puppet-backward-sexp)
|
25
|
+
;; (define-key puppet-mode-map "\e\C-f" 'puppet-forward-sexp)
|
26
|
+
;; (define-key puppet-mode-map "\e\C-p" 'puppet-beginning-of-block)
|
27
|
+
;; (define-key puppet-mode-map "\e\C-n" 'puppet-end-of-block)
|
28
|
+
;; (define-key puppet-mode-map "\e\C-h" 'puppet-mark-defun)
|
29
|
+
;; (define-key puppet-mode-map "\e\C-q" 'puppet-indent-exp)
|
30
|
+
;; (define-key puppet-mode-map "\t" 'puppet-indent-command)
|
31
|
+
;; (define-key puppet-mode-map "\C-c\C-e" 'puppet-insert-end)
|
32
|
+
;; (define-key puppet-mode-map "\C-j" 'puppet-reindent-then-newline-and-indent)
|
33
|
+
(define-key puppet-mode-map "\C-m" 'newline))
|
34
|
+
|
35
|
+
(defvar puppet-mode-syntax-table nil
|
36
|
+
"Syntax table in use in puppet-mode buffers.")
|
37
|
+
|
38
|
+
(if puppet-mode-syntax-table
|
39
|
+
()
|
40
|
+
(setq puppet-mode-syntax-table (make-syntax-table))
|
41
|
+
(modify-syntax-entry ?\' "\"" puppet-mode-syntax-table)
|
42
|
+
(modify-syntax-entry ?\" "\"" puppet-mode-syntax-table)
|
43
|
+
(modify-syntax-entry ?# "<" puppet-mode-syntax-table)
|
44
|
+
(modify-syntax-entry ?\n ">" puppet-mode-syntax-table)
|
45
|
+
(modify-syntax-entry ?\\ "\\" puppet-mode-syntax-table)
|
46
|
+
(modify-syntax-entry ?$ "." puppet-mode-syntax-table)
|
47
|
+
(modify-syntax-entry ?- "_" puppet-mode-syntax-table)
|
48
|
+
(modify-syntax-entry ?> "." puppet-mode-syntax-table)
|
49
|
+
(modify-syntax-entry ?= "." puppet-mode-syntax-table)
|
50
|
+
(modify-syntax-entry ?\; "." puppet-mode-syntax-table)
|
51
|
+
(modify-syntax-entry ?\( "()" puppet-mode-syntax-table)
|
52
|
+
(modify-syntax-entry ?\) ")(" puppet-mode-syntax-table)
|
53
|
+
(modify-syntax-entry ?\{ "(}" puppet-mode-syntax-table)
|
54
|
+
(modify-syntax-entry ?\} "){" puppet-mode-syntax-table)
|
55
|
+
(modify-syntax-entry ?\[ "(]" puppet-mode-syntax-table)
|
56
|
+
(modify-syntax-entry ?\] ")[" puppet-mode-syntax-table)
|
57
|
+
)
|
58
|
+
|
59
|
+
(defcustom puppet-indent-tabs-mode nil
|
60
|
+
"*Indentation can insert tabs in puppet mode if this is non-nil."
|
61
|
+
:type 'boolean :group 'puppet)
|
62
|
+
|
63
|
+
(defcustom puppet-comment-column 32
|
64
|
+
"*Indentation column of comments."
|
65
|
+
:type 'integer :group 'puppet)
|
66
|
+
|
67
|
+
(defun puppet-mode-variables ()
|
68
|
+
(set-syntax-table puppet-mode-syntax-table)
|
69
|
+
(setq local-abbrev-table puppet-mode-abbrev-table)
|
70
|
+
;(make-local-variable 'indent-line-function)
|
71
|
+
;(setq indent-line-function 'ruby-indent-line)
|
72
|
+
(make-local-variable 'require-final-newline)
|
73
|
+
(setq require-final-newline t)
|
74
|
+
(make-variable-buffer-local 'comment-start)
|
75
|
+
(setq comment-start "# ")
|
76
|
+
(make-variable-buffer-local 'comment-end)
|
77
|
+
(setq comment-end "")
|
78
|
+
(make-variable-buffer-local 'comment-column)
|
79
|
+
(setq comment-column puppet-comment-column)
|
80
|
+
(make-variable-buffer-local 'comment-start-skip)
|
81
|
+
(setq comment-start-skip "#+ *")
|
82
|
+
(setq indent-tabs-mode puppet-indent-tabs-mode)
|
83
|
+
(make-local-variable 'parse-sexp-ignore-comments)
|
84
|
+
(setq parse-sexp-ignore-comments t)
|
85
|
+
(make-local-variable 'paragraph-start)
|
86
|
+
(setq paragraph-start (concat "$\\|" page-delimiter))
|
87
|
+
(make-local-variable 'paragraph-separate)
|
88
|
+
(setq paragraph-separate paragraph-start)
|
89
|
+
(make-local-variable 'paragraph-ignore-fill-prefix)
|
90
|
+
(setq paragraph-ignore-fill-prefix t))
|
91
|
+
|
92
|
+
;;;###autoload
|
93
|
+
(defun puppet-mode ()
|
94
|
+
"Major mode for editing puppet manifests.
|
95
|
+
|
96
|
+
The variable puppet-indent-level controls the amount of indentation.
|
97
|
+
\\{puppet-mode-map}"
|
98
|
+
(interactive)
|
99
|
+
(kill-all-local-variables)
|
100
|
+
(use-local-map puppet-mode-map)
|
101
|
+
(setq mode-name "Puppet")
|
102
|
+
(setq major-mode 'puppet-mode)
|
103
|
+
(puppet-mode-variables)
|
104
|
+
|
105
|
+
(run-hooks 'puppet-mode-hook))
|
106
|
+
|
107
|
+
(cond
|
108
|
+
((featurep 'font-lock)
|
109
|
+
(or (boundp 'font-lock-variable-name-face)
|
110
|
+
(setq font-lock-variable-name-face font-lock-type-face))
|
111
|
+
|
112
|
+
(setq puppet-font-lock-syntactic-keywords
|
113
|
+
'(
|
114
|
+
("\\(^\\|[=(,~?:;]\\|\\(^\\|\\s \\)\\(if\\|elsif\\|unless\\|while\\|until\\|when\\|and\\|or\\|&&\\|||\\)\\|g?sub!?\\|scan\\|split!?\\)\\s *\\(/\\)[^/\n\\\\]*\\(\\\\.[^/\n\\\\]*\\)*\\(/\\)"
|
115
|
+
(4 (7 . ?/))
|
116
|
+
(6 (7 . ?/)))
|
117
|
+
("^\\(=\\)begin\\(\\s \\|$\\)" 1 (7 . nil))
|
118
|
+
("^\\(=\\)end\\(\\s \\|$\\)" 1 (7 . nil))))
|
119
|
+
|
120
|
+
(cond ((featurep 'xemacs)
|
121
|
+
(put 'puppet-mode 'font-lock-defaults
|
122
|
+
'((puppet-font-lock-keywords)
|
123
|
+
nil nil nil
|
124
|
+
beginning-of-line
|
125
|
+
(font-lock-syntactic-keywords
|
126
|
+
. puppet-font-lock-syntactic-keywords))))
|
127
|
+
(t
|
128
|
+
(add-hook 'puppet-mode-hook
|
129
|
+
'(lambda ()
|
130
|
+
(make-local-variable 'font-lock-defaults)
|
131
|
+
(make-local-variable 'font-lock-keywords)
|
132
|
+
(make-local-variable 'font-lock-syntax-table)
|
133
|
+
(make-local-variable 'font-lock-syntactic-keywords)
|
134
|
+
(setq font-lock-defaults '((puppet-font-lock-keywords) nil nil))
|
135
|
+
(setq font-lock-keywords puppet-font-lock-keywords)
|
136
|
+
(setq font-lock-syntax-table puppet-font-lock-syntax-table)
|
137
|
+
(setq font-lock-syntactic-keywords puppet-font-lock-syntactic-keywords)))))
|
138
|
+
|
139
|
+
(defvar puppet-font-lock-syntax-table
|
140
|
+
(let* ((tbl (copy-syntax-table puppet-mode-syntax-table)))
|
141
|
+
(modify-syntax-entry ?_ "w" tbl)
|
142
|
+
tbl))
|
143
|
+
|
144
|
+
(defvar puppet-font-lock-keywords
|
145
|
+
(list
|
146
|
+
;; defines
|
147
|
+
'("^\\s *\\(define\\|node\\|class\\)\\s +\\([^( \t\n]+\\)"
|
148
|
+
2 font-lock-function-name-face)
|
149
|
+
;; include
|
150
|
+
'("^\\s *include\\s +\\([^( \t\n]+\\)"
|
151
|
+
1 font-lock-reference-face)
|
152
|
+
;; keywords
|
153
|
+
(cons (concat
|
154
|
+
"\\b\\(\\("
|
155
|
+
(mapconcat
|
156
|
+
'identity
|
157
|
+
'("case"
|
158
|
+
"class"
|
159
|
+
"default"
|
160
|
+
"define"
|
161
|
+
"false"
|
162
|
+
"import"
|
163
|
+
"include"
|
164
|
+
"inherits"
|
165
|
+
"node"
|
166
|
+
"true"
|
167
|
+
)
|
168
|
+
"\\|")
|
169
|
+
"\\)\\>\\)")
|
170
|
+
1)
|
171
|
+
;; variables
|
172
|
+
'("\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\(nil\\|self\\|true\\|false\\)\\>"
|
173
|
+
2 font-lock-variable-name-face)
|
174
|
+
;; variables
|
175
|
+
'("\\(\\$\\([^a-zA-Z0-9 \n]\\|[0-9]\\)\\)\\W"
|
176
|
+
1 font-lock-variable-name-face)
|
177
|
+
'("\\(\\$\\|@\\|@@\\)\\(\\w\\|_\\)+"
|
178
|
+
0 font-lock-variable-name-face)
|
179
|
+
;; usage of types
|
180
|
+
'("^\\s +\\([a-zA-Z-]+\\)\\s +{"
|
181
|
+
1 font-lock-type-face)
|
182
|
+
;; general delimited string
|
183
|
+
'("\\(^\\|[[ \t\n<+(,=]\\)\\(%[xrqQwW]?\\([^<[{(a-zA-Z0-9 \n]\\)[^\n\\\\]*\\(\\\\.[^\n\\\\]*\\)*\\(\\3\\)\\)"
|
184
|
+
(2 font-lock-string-face))
|
185
|
+
)
|
186
|
+
"*Additional expressions to highlight in puppet mode."))
|
187
|
+
)
|
188
|
+
|
189
|
+
(provide 'puppet-mode)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# These OIDs are all fake. No guarantees there won't be conflicts.
|
2
|
+
#
|
3
|
+
# $Id: puppet.schema 876 2006-02-08 01:06:30Z luke $
|
4
|
+
|
5
|
+
attributetype ( 1.1.2.10 NAME 'puppetclass'
|
6
|
+
DESC 'Puppet Node Class'
|
7
|
+
EQUALITY caseIgnoreIA5Match
|
8
|
+
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
9
|
+
|
10
|
+
attributetype ( 1.1.2.9 NAME 'parentnode'
|
11
|
+
DESC 'Puppet Parent Node'
|
12
|
+
EQUALITY caseIgnoreIA5Match
|
13
|
+
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
14
|
+
|
15
|
+
objectclass ( 1.1.1.1 NAME 'puppetClient' SUP ipHost AUXILIARY
|
16
|
+
DESC 'Puppet Client objectclass'
|
17
|
+
MAY ( puppetclass $ parentnode ))
|
@@ -7,9 +7,8 @@
|
|
7
7
|
#
|
8
8
|
# = Usage
|
9
9
|
#
|
10
|
-
#
|
11
|
-
# [-l|--
|
12
|
-
# [-c|--confdir <configuration directory>] [--vardir <var directory>]
|
10
|
+
# puppet_module [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]
|
11
|
+
# [-l|--logdest <file>]<file>
|
13
12
|
#
|
14
13
|
# = Description
|
15
14
|
#
|
@@ -19,9 +18,11 @@
|
|
19
18
|
#
|
20
19
|
# = Options
|
21
20
|
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
21
|
+
# Note that any configuration parameter that's valid in the configuration file
|
22
|
+
# is also a valid long argument. For example, 'ssldir' is a valid configuration
|
23
|
+
# parameter, so you can specify '--ssldir <directory>' as an argument.
|
24
|
+
#
|
25
|
+
# See the configuration file for the full list of acceptable parameters.
|
25
26
|
#
|
26
27
|
# debug::
|
27
28
|
# Enable full debugging.
|
@@ -29,17 +30,10 @@
|
|
29
30
|
# help::
|
30
31
|
# Print this help message
|
31
32
|
#
|
32
|
-
#
|
33
|
+
# logdest::
|
33
34
|
# Where to send messages. Choose between syslog, the console, and a log file.
|
34
35
|
# Defaults to sending messages to the console.
|
35
36
|
#
|
36
|
-
# parse-only::
|
37
|
-
# Just verify syntax, do not apply anything.
|
38
|
-
#
|
39
|
-
# vardir::
|
40
|
-
# The variable-size directory, used for storing state. Defaults to
|
41
|
-
# /var/puppet.
|
42
|
-
#
|
43
37
|
# verbose::
|
44
38
|
# Print extra information.
|
45
39
|
#
|
@@ -65,18 +59,19 @@ rescue LoadError
|
|
65
59
|
$haveusage = false
|
66
60
|
end
|
67
61
|
|
68
|
-
|
69
|
-
[ "--confdir", "-c", GetoptLong::REQUIRED_ARGUMENT ],
|
62
|
+
options = [
|
70
63
|
[ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
|
71
64
|
[ "--help", "-h", GetoptLong::NO_ARGUMENT ],
|
72
65
|
[ "--logdest", "-l", GetoptLong::REQUIRED_ARGUMENT ],
|
73
66
|
[ "--verbose", "-v", GetoptLong::NO_ARGUMENT ],
|
74
|
-
[ "--noop", "-n", GetoptLong::NO_ARGUMENT ],
|
75
67
|
[ "--use-nodes", GetoptLong::NO_ARGUMENT ],
|
76
|
-
[ "--parse-only", "-p", GetoptLong::NO_ARGUMENT ],
|
77
|
-
[ "--vardir", GetoptLong::REQUIRED_ARGUMENT ],
|
78
68
|
[ "--version", "-V", GetoptLong::NO_ARGUMENT ]
|
79
|
-
|
69
|
+
]
|
70
|
+
|
71
|
+
# Add all of the config parameters as valid options.
|
72
|
+
Puppet.config.addargs(options)
|
73
|
+
|
74
|
+
result = GetoptLong.new(*options)
|
80
75
|
|
81
76
|
debug = false
|
82
77
|
verbose = false
|
@@ -95,8 +90,6 @@ master = {
|
|
95
90
|
begin
|
96
91
|
result.each { |opt,arg|
|
97
92
|
case opt
|
98
|
-
when "--confdir"
|
99
|
-
Puppet[:puppetconf] = arg
|
100
93
|
when "--version"
|
101
94
|
puts "%s" % Puppet.version
|
102
95
|
exit
|
@@ -107,24 +100,20 @@ begin
|
|
107
100
|
puts "No help available unless you have RDoc::usage installed"
|
108
101
|
exit
|
109
102
|
end
|
110
|
-
when "--noop"
|
111
|
-
Puppet[:noop] = true
|
112
103
|
when "--use-nodes"
|
113
104
|
master[:UseNodes] = true
|
114
105
|
when "--verbose"
|
115
106
|
verbose = true
|
116
|
-
when "--parse-only"
|
117
|
-
parseonly = true
|
118
107
|
when "--debug"
|
119
108
|
debug = true
|
120
109
|
when "--logdest"
|
121
110
|
begin
|
122
|
-
Puppet
|
111
|
+
Puppet::Log.newdestination arg
|
123
112
|
rescue => detail
|
124
113
|
$stderr.puts detail.to_s
|
125
114
|
end
|
126
|
-
|
127
|
-
Puppet
|
115
|
+
else
|
116
|
+
Puppet.config.handlearg(opt, arg)
|
128
117
|
end
|
129
118
|
}
|
130
119
|
rescue GetoptLong::InvalidOption => detail
|
@@ -136,11 +125,21 @@ rescue GetoptLong::InvalidOption => detail
|
|
136
125
|
end
|
137
126
|
|
138
127
|
if debug
|
139
|
-
Puppet
|
128
|
+
Puppet::Log.level = :debug
|
129
|
+
Puppet::Log.newdestination :console
|
140
130
|
elsif verbose
|
141
|
-
Puppet
|
131
|
+
Puppet::Log.level = :info
|
132
|
+
Puppet::Log.newdestination :console
|
133
|
+
end
|
134
|
+
|
135
|
+
# Now parse the config
|
136
|
+
if Puppet[:config] and File.exists? Puppet[:config]
|
137
|
+
Puppet.config.parse(Puppet[:config])
|
142
138
|
end
|
143
139
|
|
140
|
+
Puppet.genconfig
|
141
|
+
Puppet.genmanifest
|
142
|
+
|
144
143
|
unless ARGV.length > 0
|
145
144
|
$stderr.puts "You must pass a script to parse"
|
146
145
|
exit(14)
|