Module: Imap::Backup::Utils

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

Class Method Summary collapse

Class Method Details

.check_permissions(filename, limit) ⇒ Object



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

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

.make_folder(base_path, path, permissions) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/imap/backup/utils.rb', line 22

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



15
16
17
18
19
20
# File 'lib/imap/backup/utils.rb', line 15

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

  stat = File.stat(filename)
  stat.mode & 0777
end