Ark is getting a bit too hairy as I try to stuff more and more
functionality into it. The current Ark cookbook also has issues w/
idempotency that need to be addressed. I am thinking about creating a
new LWRP "build" for which ark is just a component. Tks to erik
hollensbe for suggesting the name "build". the main idea is that build
has sub-resources like configure, make, python, ant, etc. that each
take their block
Here is the DSL that I have in mind. If this is a frankenstein, pls tell me
build "collectd"
# this would call the ark provider in the build provider
ark do
url "http://..."
checksum "asdfasdf"
end
configure do # won't run if "config.status" file exists
flags [ "--enable-python", "--enable-jvm" ]
prefix "/opt"
end
make do
env [ "OS=linux" ]
creates 'bin/collectd'
end
make "install" do
creates "/usr/sbin/collectd"
end
end
easier to extend and more composable, you could even use it w/out ark
to grab and deposit the files and build could be extended to use
additional build tools like ant, cmake, scons, etc.
bash "untar files" do
code <<EOF
wget http://example.com/foobar.tar.gz -O /tmp/foobar
tar xvzf /tmp/foobar.tar.gz -C /opt
EOF
end
build "foobar" do
cmake do
flags [ "--with-cracklib", "--with-postgres" ]
creates "bin/foobar"
end
cmake "install" do
creates "bin/foobar"
end
end
end
one of the downsides is that this will require a good amount of work
on my side, something I was hoping to avoid
I also need to balance this new dsl w/ the efficacy of the current ark
lwrp, which is really succinct for simple tasks. Perhaps I could do
this by leaving ark as a separate class but then creating a subclass
in Build::Ark. just an idea
feedback would be most appreciated!
Archive powered by MHonArc 2.6.16.