Module: Puppet::FileSystem
- Defined in:
- lib/puppet/file_system.rb,
lib/puppet/file_system/path_pattern.rb
Defined Under Namespace
Classes: AbsolutePathPattern, File18, File19, File19Windows, FileImpl, MemoryFile, MemoryImpl, PathPattern, RelativePathPattern, Uniquefile
Class Method Summary collapse
-
.assert_path(path) ⇒ Object
Asserts that the given path is of the expected type produced by #pathname.
-
.basename(path) ⇒ Object
The name of the file as a opaque handle.
-
.basename_string(path) ⇒ String
The name of the file.
-
.binread(path) ⇒ String
The binary contents of the file.
-
.children(path) ⇒ Array<Object>
References to all of the children of the given directory path, excluding ‘.` and `..`.
-
.chmod(mode, path) ⇒ Object
Changes permission bits on the named path to the bit pattern represented by mode.
-
.compare_stream(path, stream) ⇒ Boolean
Compares the contents of this file against the contents of a stream.
-
.dir(path) ⇒ Object
The directory of this file as an opaque handle.
-
.dir_exist?(path) ⇒ Boolean
Does the directory of the given path exist?.
-
.dir_mkpath(path) ⇒ Object
Creates all directories down to (inclusive) the dir of the given path.
-
.dir_string(path) ⇒ String
The directory of this file as a String.
-
.directory?(path) ⇒ Boolean
Determines if a file is a directory.
-
.each_line(path, &block) ⇒ Object
Processes each line of the file by yielding it to the given block.
-
.exclusive_create(path, mode, &block) ⇒ Object
Create and open a file for write only if it doesn’t exist.
-
.exclusive_open(path, mode, options = 'r', timeout = 300) { ... } ⇒ Void
Allows exclusive updates to a file to be made by excluding concurrent access using flock.
-
.executable?(path) ⇒ Boolean
Determines if a file is executable.
-
.exist?(path) ⇒ Boolean
Determines if a file exists by verifying that the file can be stat’d.
-
.file?(path) ⇒ Boolean
Determines if a file is a file.
-
.lstat(path) ⇒ File::Stat
link.
-
.mkpath(path) ⇒ Object
Creates directories for all parts of the given path.
-
.open(path, mode, options, &block) ⇒ Object
Opens the given path with given mode, and options and optionally yields it to the given block.
-
.overlay(*files, &block) ⇒ Object
private
Allows overriding the filesystem for the duration of the given block.
-
.path_string(path) ⇒ String
Produces a string representation of the opaque path handle.
-
.pathname(path) ⇒ Object
Produces an opaque pathname “handle” object representing the given path.
-
.read(path) ⇒ String
The contents of the file.
-
.readlink(path) ⇒ String
The name of the file referenced by the given link.
-
.size(path) ⇒ Integer
The size of the file.
-
.stat(path) ⇒ File::Stat
Object for the named file.
-
.symlink(path, dest, options = {}) ⇒ Integer
Creates a symbolic link dest which points to the current file.
-
.symlink?(path) ⇒ Boolean
True if the file is a symbolic link.
-
.touch(path) ⇒ Object
Touches the file.
-
.unlink(*paths) ⇒ Integer
Deletes the given paths, returning the number of names passed as arguments.
-
.writable?(path) ⇒ Boolean
Whether the file is writable by the current process.
Class Method Details
.assert_path(path) ⇒ Object
Asserts that the given path is of the expected type produced by #pathname
328 329 330 |
# File 'lib/puppet/file_system.rb', line 328 def self.assert_path(path) @impl.assert_path(path) end |
.basename(path) ⇒ Object
Returns the name of the file as a opaque handle.
73 74 75 |
# File 'lib/puppet/file_system.rb', line 73 def self.basename(path) @impl.basename(assert_path(path)) end |
.basename_string(path) ⇒ String
Returns the name of the file.
81 82 83 |
# File 'lib/puppet/file_system.rb', line 81 def self.basename_string(path) @impl.path_string(@impl.basename(assert_path(path))) end |
.binread(path) ⇒ String
Returns The binary contents of the file.
136 137 138 |
# File 'lib/puppet/file_system.rb', line 136 def self.binread(path) @impl.binread(assert_path(path)) end |
.children(path) ⇒ Array<Object>
Returns references to all of the children of the given directory path, excluding ‘.` and `..`.
208 209 210 |
# File 'lib/puppet/file_system.rb', line 208 def self.children(path) @impl.children(assert_path(path)) end |
.chmod(mode, path) ⇒ Object
Changes permission bits on the named path to the bit pattern represented by mode.
363 364 365 |
# File 'lib/puppet/file_system.rb', line 363 def self.chmod(mode, path) @impl.chmod(mode, path) end |
.compare_stream(path, stream) ⇒ Boolean
Compares the contents of this file against the contents of a stream.
304 305 306 |
# File 'lib/puppet/file_system.rb', line 304 def self.compare_stream(path, stream) @impl.compare_stream(assert_path(path), stream) end |
.dir(path) ⇒ Object
Returns The directory of this file as an opaque handle.
47 48 49 |
# File 'lib/puppet/file_system.rb', line 47 def self.dir(path) @impl.dir(assert_path(path)) end |
.dir_exist?(path) ⇒ Boolean
Returns Does the directory of the given path exist?.
60 61 62 |
# File 'lib/puppet/file_system.rb', line 60 def self.dir_exist?(path) @impl.exist?(@impl.dir(assert_path(path))) end |
.dir_mkpath(path) ⇒ Object
Creates all directories down to (inclusive) the dir of the given path
65 66 67 |
# File 'lib/puppet/file_system.rb', line 65 def self.dir_mkpath(path) @impl.mkpath(@impl.dir(assert_path(path))) end |
.dir_string(path) ⇒ String
Returns The directory of this file as a String.
55 56 57 |
# File 'lib/puppet/file_system.rb', line 55 def self.dir_string(path) @impl.path_string(@impl.dir(assert_path(path))) end |
.directory?(path) ⇒ Boolean
Determines if a file is a directory.
156 157 158 |
# File 'lib/puppet/file_system.rb', line 156 def self.directory?(path) @impl.directory?(assert_path(path)) end |
.each_line(path, &block) ⇒ Object
Processes each line of the file by yielding it to the given block
120 121 122 |
# File 'lib/puppet/file_system.rb', line 120 def self.each_line(path, &block) @impl.each_line(assert_path(path), &block) end |
.exclusive_create(path, mode, &block) ⇒ Object
Create and open a file for write only if it doesn’t exist.
349 350 351 |
# File 'lib/puppet/file_system.rb', line 349 def self.exclusive_create(path, mode, &block) @impl.exclusive_create(assert_path(path), mode, &block) end |
.exclusive_open(path, mode, options = 'r', timeout = 300) { ... } ⇒ Void
Allows exclusive updates to a file to be made by excluding concurrent access using flock. This means that if the file is on a filesystem that does not support flock, this method will provide no protection.
While polling to aquire the lock the process will wait ever increasing amounts of time in order to prevent multiple processes from wasting resources.
112 113 114 |
# File 'lib/puppet/file_system.rb', line 112 def self.exclusive_open(path, mode, = 'r', timeout = 300, &block) @impl.exclusive_open(assert_path(path), mode, , timeout, &block) end |
.executable?(path) ⇒ Boolean
Should this take into account extensions on the windows platform?
Determines if a file is executable.
177 178 179 |
# File 'lib/puppet/file_system.rb', line 177 def self.executable?(path) @impl.executable?(assert_path(path)) end |
.exist?(path) ⇒ Boolean
Determines if a file exists by verifying that the file can be stat’d. Will follow symlinks and verify that the actual target path exists.
147 148 149 |
# File 'lib/puppet/file_system.rb', line 147 def self.exist?(path) @impl.exist?(assert_path(path)) end |
.file?(path) ⇒ Boolean
Determines if a file is a file.
165 166 167 |
# File 'lib/puppet/file_system.rb', line 165 def self.file?(path) @impl.file?(assert_path(path)) end |
.lstat(path) ⇒ File::Stat
link. Instead, reports on the link itself.
293 294 295 |
# File 'lib/puppet/file_system.rb', line 293 def self.lstat(path) @impl.lstat(assert_path(path)) end |
.mkpath(path) ⇒ Object
Creates directories for all parts of the given path.
201 202 203 |
# File 'lib/puppet/file_system.rb', line 201 def self.mkpath(path) @impl.mkpath(assert_path(path)) end |
.open(path, mode, options, &block) ⇒ Object
Opens the given path with given mode, and options and optionally yields it to the given block.
39 40 41 |
# File 'lib/puppet/file_system.rb', line 39 def self.open(path, mode, , &block) @impl.open(assert_path(path), mode, , &block) end |
.overlay(*files, &block) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Allows overriding the filesystem for the duration of the given block. The filesystem will only contain the given file(s).
27 28 29 30 31 32 33 |
# File 'lib/puppet/file_system.rb', line 27 def self.(*files, &block) old_impl = @impl @impl = Puppet::FileSystem::MemoryImpl.new(*files) yield ensure @impl = old_impl end |
.path_string(path) ⇒ String
Produces a string representation of the opaque path handle.
337 338 339 |
# File 'lib/puppet/file_system.rb', line 337 def self.path_string(path) @impl.path_string(path) end |
.pathname(path) ⇒ Object
Produces an opaque pathname “handle” object representing the given path. Different implementations of the underlying file system may use different runtime objects. The produced “handle” should be used in all other operations that take a “path”. No operation should be directly invoked on the returned opaque object
318 319 320 |
# File 'lib/puppet/file_system.rb', line 318 def self.pathname(path) @impl.pathname(path) end |
.read(path) ⇒ String
Returns The contents of the file.
128 129 130 |
# File 'lib/puppet/file_system.rb', line 128 def self.read(path) @impl.read(assert_path(path)) end |
.readlink(path) ⇒ String
Returns the name of the file referenced by the given link.
255 256 257 |
# File 'lib/puppet/file_system.rb', line 255 def self.readlink(path) @impl.readlink(assert_path(path)) end |
.size(path) ⇒ Integer
Returns the size of the file.
89 90 91 |
# File 'lib/puppet/file_system.rb', line 89 def self.size(path) @impl.size(assert_path(path)) end |
.stat(path) ⇒ File::Stat
Returns object for the named file.
276 277 278 |
# File 'lib/puppet/file_system.rb', line 276 def self.stat(path) @impl.stat(assert_path(path)) end |
.symlink(path, dest, options = {}) ⇒ Integer
Creates a symbolic link dest which points to the current file. If dest already exists:
-
and is a file, will raise Errno::EEXIST
-
and is a directory, will return 0 but perform no action
-
and is a symlink referencing a file, will raise Errno::EEXIST
-
and is a symlink referencing a directory, will return 0 but perform no action
With the :force option set to true, when dest already exists:
-
and is a file, will replace the existing file with a symlink (DANGEROUS)
-
and is a directory, will return 0 but perform no action
-
and is a symlink referencing a file, will modify the existing symlink
-
and is a symlink referencing a directory, will return 0 but perform no action
239 240 241 |
# File 'lib/puppet/file_system.rb', line 239 def self.symlink(path, dest, = {}) @impl.symlink(assert_path(path), dest, ) end |
.symlink?(path) ⇒ Boolean
Returns true if the file is a symbolic link.
247 248 249 |
# File 'lib/puppet/file_system.rb', line 247 def self.symlink?(path) @impl.symlink?(assert_path(path)) end |
.touch(path) ⇒ Object
Touches the file. On most systems this updates the mtime of the file.
193 194 195 |
# File 'lib/puppet/file_system.rb', line 193 def self.touch(path) @impl.touch(assert_path(path)) end |
.unlink(*paths) ⇒ Integer
Deletes the given paths, returning the number of names passed as arguments. See also Dir::rmdir.
268 269 270 |
# File 'lib/puppet/file_system.rb', line 268 def self.unlink(*paths) @impl.unlink(*(paths.map {|p| assert_path(p) })) end |
.writable?(path) ⇒ Boolean
Returns Whether the file is writable by the current process.
185 186 187 |
# File 'lib/puppet/file_system.rb', line 185 def self.writable?(path) @impl.writable?(assert_path(path)) end |