christopher floess <skepti...@gmail.com> writes:

>> We work on this by keeping the puppet configuration in Subversion.  We then
>> have a Makefile at the top level which runs a puppet syntax check on any
>> modified file before a commit.
>
> Uh, would you mind divulging to someone with a little less experience, how
> this syntax check works? I can read make, if you just want to post the
> contents of it.

Requires GNU Make, and possibly bash as the default shell:

check     := pp erb rb
check_pp  = puppet --confdir=/tmp --vardir=/tmp --parseonly --ignoreimport \
                --color=false --modulepath=./modules $< && echo "$< syntax OK"
check_erb = echo -n "$<: " && erb -x -T '-' $< | ruby -c
check_rb  = echo -n "$<: " && ruby -c $<

define check_conflicts
if /bin/egrep -q -x -e '^(<<<<<<<|=======|>>>>>>>)' '$<'; then echo "ERROR: 
conflict marker found in $@"; /bin/false; else :; fi
endef

all: pull test
push: all
        @echo "Committing your changes to the upstream server..."
        @svn commit

to_test := $(foreach ext,$(check),$(shell find * -name "*.$(ext)" -printf 
'.check/%p\n' | sort))

test: $(to_test)
.check/%: ext=$(subst .,,$(suffix $(<F)))
.check/%: %
        @mkdir -p $(dir $@)
        @$(check_conflicts)
        @$(or $(check_$(ext)),$(error syntax rule check_$(ext) is not defined))
        @touch $@


> Thanks in advance,

Don't thank me until you see the code. ;)

        Daniel

Also, this is edited to excise support for git, and remove extraneous bits and
some other extension-based syntax checks for non-puppet bits we use.

-- 
✣ Daniel Pittman            ✉ dan...@rimspace.net            ☎ +61 401 155 707
               ♽ made with 100 percent post-consumer electrons

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to