generate() function help

127 views
Skip to first unread message

Jakov Sosic

unread,
Dec 27, 2012, 1:29:51 PM12/27/12
to puppet...@googlegroups.com
Hi.

I want to run script which is distributed with my module, but the
problem is I have to then hardcode the path to the script in the
generate function call, for example:

generate("/etc/puppet/environments/${environment}/modules/mymodule/scripts/myscript")

But what If some other site uses other path to their modules, or doesn't
use environments at all? Is it possible somehow to detect the dir in
which the module is installed, so that I can use something like:


generate("$modulepath/scripts/myscript")



--
Jakov Sosic
www.srce.unizg.hr

Nan Liu

unread,
Dec 27, 2012, 1:57:02 PM12/27/12
to puppet...@googlegroups.com

Jakov Sosic

unread,
Dec 27, 2012, 6:37:19 PM12/27/12
to puppet...@googlegroups.com
On 12/27/2012 07:57 PM, Nan Liu wrote:
> On Thu, Dec 27, 2012 at 10:29 AM, Jakov Sosic <jso...@srce.hr
> <mailto:jso...@srce.hr>> wrote:
>
> I want to run script which is distributed with my module, but the
> problem is I have to then hardcode the path to the script in the
> generate function call, for example:
>
> generate("/etc/puppet/__environments/${environment}/__modules/mymodule/scripts/__myscript")
>
> But what If some other site uses other path to their modules, or
> doesn't use environments at all? Is it possible somehow to detect
> the dir in which the module is installed, so that I can use
> something like:
>
>
> generate("$modulepath/scripts/__myscript")
>
>
> See stdlib:
> https://github.com/puppetlabs/puppetlabs-stdlib/blob/master/lib/puppet/parser/functions/get_module_path.rb

I've found that already. But I've decided to write my own function which
returns path to current module directory. If that doesn't succeed then
I'll use get_module_path.


--
Jakov Sosic
www.srce.unizg.hr

Jakov Sosic

unread,
Dec 28, 2012, 10:16:49 AM12/28/12
to puppet...@googlegroups.com
On 12/28/2012 12:37 AM, Jakov Sosic wrote:

> I've found that already. But I've decided to write my own function which
> returns path to current module directory. If that doesn't succeed then
> I'll use get_module_path.

Hm, I'm having problems with writing custom functions...

One question first - is it possible for custom function to generate some
files on a given path on puppet master? I've tried the following:

module Puppet::Parser::Functions
newfunction(:generate_host_keys, :type =>:rvalue) do |args|

Dir.mkdir("/tmp/something", 755)

end
end


But dir isn't created on puppet master on agent run...




--
Jakov Sosic
www.srce.unizg.hr
Reply all
Reply to author
Forward
0 new messages