summaryrefslogtreecommitdiffstats
path: root/lib/puppet/modules.rb
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-06 22:22:10 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-07-06 22:22:10 +0000
commitaa741354a75c0d3b4f4b7f37a736a0154d45234c (patch)
treef048ad40c86425eabe76fccd07345f1cc63b9fa8 /lib/puppet/modules.rb
parentd0680c8ed3f1e0df864c25a3f21e73383095629b (diff)
downloadpuppet-aa741354a75c0d3b4f4b7f37a736a0154d45234c.tar.gz
puppet-aa741354a75c0d3b4f4b7f37a736a0154d45234c.tar.xz
puppet-aa741354a75c0d3b4f4b7f37a736a0154d45234c.zip
Fixing #596 -- classes in modules now autoload
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2655 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/modules.rb')
-rw-r--r--lib/puppet/modules.rb113
1 files changed, 0 insertions, 113 deletions
diff --git a/lib/puppet/modules.rb b/lib/puppet/modules.rb
deleted file mode 100644
index aa2f75d03..000000000
--- a/lib/puppet/modules.rb
+++ /dev/null
@@ -1,113 +0,0 @@
-# Support for modules
-class Puppet::Module
-
- TEMPLATES = "templates"
- FILES = "files"
- MANIFESTS = "manifests"
-
- # Return an array of paths by splitting the +modulepath+ config
- # parameter. Only consider paths that are absolute and existing
- # directories
- def self.modulepath
- dirs = Puppet[:modulepath].split(":")
- if ENV["PUPPETLIB"]
- dirs = ENV["PUPPETLIB"].split(":") + dirs
- end
- dirs.select do |p|
- p =~ /^#{File::SEPARATOR}/ && File::directory?(p)
- end
- end
-
- # Find and return the +module+ that +path+ belongs to. If +path+ is
- # absolute, or if there is no module whose name is the first component
- # of +path+, return +nil+
- def self.find(path)
- if path =~ %r/^#{File::SEPARATOR}/
- return nil
- end
-
- modname, rest = path.split(File::SEPARATOR, 2)
- return nil if modname.nil? || modname.empty?
-
- modpath = modulepath.collect { |p|
- File::join(p, modname)
- }.find { |f| File::directory?(f) }
- return nil unless modpath
-
- return self.new(modname, modpath)
- end
-
- # Instance methods
-
- # Find the concrete file denoted by +file+. If +file+ is absolute,
- # return it directly. Otherwise try to find it as a template in a
- # module. If that fails, return it relative to the +templatedir+ config
- # param.
- # In all cases, an absolute path is returned, which does not
- # necessarily refer to an existing file
- def self.find_template(file)
- if file =~ /^#{File::SEPARATOR}/
- return file
- end
-
- mod = find(file)
- if mod
- return mod.template(file)
- else
- return File.join(Puppet[:templatedir], file)
- end
- end
-
- # Return a list of manifests (as absolute filenames) that match +pat+
- # with the current directory set to +cwd+. If the first component of
- # +pat+ does not contain any wildcards and is an existing module, return
- # a list of manifests in that module matching the rest of +pat+
- # Otherwise, try to find manifests matching +pat+ relative to +cwd+
- def self.find_manifests(pat, cwd = nil)
- cwd ||= Dir.getwd
- mod = find(pat)
- if mod
- return mod.manifests(pat)
- else
- abspat = File::expand_path(pat, cwd)
- files = Dir.glob(abspat).reject { |f| FileTest.directory?(f) }
- if files.size == 0
- files = Dir.glob(abspat + ".pp").reject { |f| FileTest.directory?(f) }
- end
- return files
- end
- end
-
- attr_reader :name, :path
- def initialize(name, path)
- @name = name
- @path = path
- end
-
- def strip(file)
- n, rest = file.split(File::SEPARATOR, 2)
- rest = nil if rest && rest.empty?
- return rest
- end
-
- def template(file)
- return File::join(path, TEMPLATES, strip(file))
- end
-
- def files
- return File::join(path, FILES)
- end
-
- def manifests(pat)
- rest = strip(pat)
- rest ||= "init.pp"
- p = File::join(path, MANIFESTS, rest)
- files = Dir.glob(p)
- if files.size == 0
- files = Dir.glob(p + ".pp")
- end
- return files
- end
-
- private :initialize
-end