Class: DiskSpace

Inherits:
Object
  • Object
show all
Defined in:
lib/disk_space.rb

Class Method Summary collapse

Class Method Details

.free(path) ⇒ Object



20
21
22
23
24
# File 'lib/disk_space.rb', line 20

def self.free(path)
  output = Discourse::Utils.execute_command("df", "-Pk", path)
  size_line = output.split("\n")[1]
  size_line.split(/\s+/)[3].to_i * 1024
end

.percent_free(path) ⇒ Object



26
27
28
29
30
# File 'lib/disk_space.rb', line 26

def self.percent_free(path)
  output = Discourse::Utils.execute_command("df", "-P", path)
  size_line = output.split("\n")[1]
  size_line.split(/\s+/)[4].to_i
end

.uploads_free_bytesObject



12
13
14
15
16
17
18
# File 'lib/disk_space.rb', line 12

def self.uploads_free_bytes
  if Discourse.store.external?
    0
  else
    free(uploads_path)
  end
end

.uploads_used_bytesObject



4
5
6
7
8
9
10
# File 'lib/disk_space.rb', line 4

def self.uploads_used_bytes
  if Discourse.store.external?
    Upload.sum(:filesize).to_i + OptimizedImage.sum(:filesize).to_i
  else
    used(uploads_path)
  end
end

.used(path) ⇒ Object



32
33
34
# File 'lib/disk_space.rb', line 32

def self.used(path)
  Discourse::Utils.execute_command("du", "-s", path).to_i * 1024
end