Issue #4885 has been updated by Nigel Kersten.
Josh Cooper wrote: > I like Brice's suggestion `source => "module://foo.conf"` as it's compact, > simplifies the migration path, and would not affect our ability to support > http(s) as the file source (see #5783) Is that literally "module" ? or the name of the module? If it's the former, it doesn't save anything over "puppet" and how do you distinguish between a file in a subdirectory of the 'local' module and a file from a different module? If it's the latter, then we've got namespace collisions between module names and future supported protocols. I really think we should be optimizing for the most common cases. 1. files from within the current module 1. files from another module 1. then care about future protocols we haven't yet implemented... The vast vast majority of the time you're dealing with case (1). ---------------------------------------- Feature #4885: Simplify the syntax for specifying file paths in modules using a '~' https://projects.puppetlabs.com/issues/4885 Author: Nigel Kersten Status: Accepted Priority: Normal Assignee: Category: Target version: Telly Affected Puppet version: Keywords: Branch: There is too much redundant info in puppet file source specifications in modules. <pre> file { "ugly": source => "puppet:///modules/foo/bar", } </pre> Additionally, we're inconsistent with our template() and file() functions. template() takes either a path relative to the modulepath, dereferencing to "templates" sub-directories of the module or an absolute path. file() takes an absolute path only. I suggest (after a flash of inspiration from Patrick on the mailing list) we use the '~' syntax in a standard unix-y way to refer to module locations as follows. Each class mentioned below corresponds to a module. File source: Reference: $modulepath/modules/foo/files/bar <pre> class foo { file { "booyah": source => "~/bar", } } class notfoo { file { "booyah2": source => "~foo/bar", } } </pre> Template function: Reference: $modulepath/modules/foo/templates/bar.erb <pre> class foo { file { "booyah": content => template("~/bar.erb"), } } class notfoo { file { "booyah2": content => template("~foo/bar.erb"), } } </pre> File function: Reference: $modulepath/modules/foo/files/bar <pre> class foo { file { "booyah": content => file("~/bar"), } } class notfoo { file { "booyah2": content => file("~foo/bar"), } } </pre> I believe we should be able to make this change without breaking any of the existing behavior. I do believe we should aim to deprecate the old template function, but that can be a separate discussion. I haven't actually spent time ensuring this is possible. This is just what I would like to see. Mailing list thread references so we don't re-hash the same questions over again unless needed: http://groups.google.com/group/puppet-dev/browse_frm/thread/688050b8f0668ff2 http://groups.google.com/group/puppet-users/browse_frm/thread/688050b8f0668ff2 (was cross-posted, which never works out well. ) -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
