Module: Imap::Backup::Utils

Defined in:
lib/imap/backup/utils.rb

Class Method Summary collapse

Class Method Details

.check_permissions(filename, limit) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/imap/backup/utils.rb', line 5

def self.check_permissions(filename, limit)
  actual = stat(filename)
  return nil if actual.nil?
  mask = ~limit & 0o777
  if actual & mask != 0
    message = format(
      "Permissions on '%<filename>s' " \
        "should be 0%<limit>o, not 0%<actual>o",
      filename: filename, limit: limit, actual: actual
    )
    raise message
  end
end

.make_folder(base_path, path, permissions) ⇒ Object



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

def self.make_folder(base_path, path, permissions)
  parts = path.split("/")
  return if parts.size == 0
  full_path = File.join(base_path, path)
  FileUtils.mkdir_p full_path
  path = base_path
  parts.each do |part|
    path = File.join(path, part)
    FileUtils.chmod permissions, path
  end
end

.stat(filename) ⇒ Object



19
20
21
22
23
24
# File 'lib/imap/backup/utils.rb', line 19

def self.stat(filename)
  return nil unless File.exist?(filename)

  stat = File.stat(filename)
  stat.mode & 0o777
end