Class: Puppetserver::Utils::FileUtilities

Inherits:
Object
  • Object
show all
Defined in:
lib/puppetserver/utils/file_utilities.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFileUtilities

Returns a new instance of FileUtilities.



37
38
39
# File 'lib/puppetserver/utils/file_utilities.rb', line 37

def initialize
  @user, @group = find_user_and_group
end

Class Method Details

.ensure_dir(setting) ⇒ Object



16
17
18
# File 'lib/puppetserver/utils/file_utilities.rb', line 16

def self.ensure_dir(setting)
  instance.ensure_dir(setting)
end

.ensure_file(location, content, mode) ⇒ Object



20
21
22
23
24
# File 'lib/puppetserver/utils/file_utilities.rb', line 20

def self.ensure_file(location, content, mode)
  if !File.exist?(location)
    instance.write_file(location, content, mode)
  end
end

.instanceObject



8
9
10
# File 'lib/puppetserver/utils/file_utilities.rb', line 8

def self.instance
  @instance ||= new
end

.validate_file_paths(one_or_more_paths) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/puppetserver/utils/file_utilities.rb', line 26

def self.validate_file_paths(one_or_more_paths)
  errors = []
  Array(one_or_more_paths).each do |path|
    if !File.exist?(path) || !File.readable?(path)
      errors << "Could not read file '#{path}'"
    end
  end

  errors
end

.write_file(*args) ⇒ Object



12
13
14
# File 'lib/puppetserver/utils/file_utilities.rb', line 12

def self.write_file(*args)
  instance.write_file(*args)
end

Instance Method Details

#ensure_dir(setting) ⇒ Object



70
71
72
73
74
75
# File 'lib/puppetserver/utils/file_utilities.rb', line 70

def ensure_dir(setting)
  if !File.exist?(setting)
    FileUtils.mkdir_p(setting, mode: 0750)
    FileUtils.chown(@user, @group, setting)
  end
end

#find_user_and_groupObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/puppetserver/utils/file_utilities.rb', line 41

def find_user_and_group
  if !running_as_root?
    return Process.euid, Process.egid
  else
    if pe_puppet_exists?
      return 'pe-puppet', 'pe-puppet'
    else
      return 'puppet', 'puppet'
    end
  end
end

#pe_puppet_exists?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/puppetserver/utils/file_utilities.rb', line 57

def pe_puppet_exists?
  !!(Etc.getpwnam('pe-puppet') rescue nil)
end

#running_as_root?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/puppetserver/utils/file_utilities.rb', line 53

def running_as_root?
  !Gem.win_platform? && Process.euid == 0
end

#write_file(path, one_or_more_objects, mode) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/puppetserver/utils/file_utilities.rb', line 61

def write_file(path, one_or_more_objects, mode)
  File.open(path, 'w', mode) do |f|
    Array(one_or_more_objects).each do |object|
      f.puts object.to_s
    end
  end
  FileUtils.chown(@user, @group, path)
end