osx-free 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (6) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +3 -0
  3. data/Readme.md +16 -0
  4. data/bin/free +71 -0
  5. data/osx-free.gemspec +16 -0
  6. metadata +78 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MGYxM2ZkMjdjMDNjYTYyOTBiNmRkZTE1NTBhOGE1NjdiNDBkZmFiNA==
5
+ data.tar.gz: !binary |-
6
+ ZTAyZjVjNGJmMmJjYzI5OGI1ZmE2YTgxNjBhMTY3ZDVmYmJjN2Y2MQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZGNlNzQ0YzRkYjhmOGExNzAzMDcwMDExZDhjMTk0MGU5ZmJhZmU0OTVhYzlk
10
+ YWY3Mjg4MjdmOTExMTYwMDU2ZDVjYTg0ZDU4YWQ3MWU0ZTk2OGU1ZTg3YWZj
11
+ NjkwZTkwYzgzNmJhOTQxZmYwNTQ2MzJiMjZmNzNlYTljMjYwZmU=
12
+ data.tar.gz: !binary |-
13
+ ZWM5ZDg4ZDQ5YmU4YmVhNWZlZjMxNDYwNzBkODM5MjdiMjMzYTdmNTVmNDEz
14
+ OWU3N2I5MWJlMDAxMjc4M2Y1ODY1MjdmNjcyNjhhOGM4ZWNiZjkwMzAwMTYw
15
+ Y2RkNjRiMmFmYjgxZmExZDY5NDI2MDkwYTQwNDcyODExMzVkNjI=
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Readme.md ADDED
@@ -0,0 +1,16 @@
1
+ Free
2
+ ====================
3
+
4
+ _Because OS X doesn't have a_ `free` _command_
5
+
6
+ ```bash
7
+ $ free
8
+ Usage:
9
+ free [options]
10
+ --watch, -w: watch command
11
+ --gb, -g: view in GBs
12
+ --mb, -m: view in MBs
13
+ --show-units, -s: show unit size
14
+ --version, -v: Print version and exit
15
+ --help, -h: Show this message
16
+ ```
data/bin/free ADDED
@@ -0,0 +1,71 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'trollop'
4
+ require 'formatador'
5
+
6
+ @opts = Trollop::options do
7
+ version "OS X free command 0.0.1 -- dan pittman 2013"
8
+ banner <<-EOS
9
+ Usage:
10
+ free [options]
11
+ EOS
12
+ opt :watch, "watch command", :default => false
13
+ opt :gb, "view in GBs", :default => false
14
+ opt :mb, "view in MBs", :default => false
15
+ opt :'show-units', "show unit size", :default => false
16
+ end
17
+
18
+ def get_data
19
+ raw_data = {}
20
+ mem = `vm_stat | sed s/\\ //g | tail -n+2 | head -n4`.split("\n")
21
+ mem.each do |m|
22
+ m = m.split(':')
23
+ raw_data[m[0].gsub(/Pages/, '').to_sym] = m[1].chomp('.').to_i
24
+ end
25
+ raw_data[:available] = raw_data.values.reduce(:+)
26
+ raw_data[:used] = raw_data[:active] + raw_data[:inactive] + raw_data[:speculative]
27
+ raw_data.each do |k, v|
28
+ if @opts[:gb]
29
+ raw_data[k] = v * 4096 / 1024 / 1024 / 1024
30
+ elsif @opts[:mb]
31
+ raw_data[k] = v * 4096 / 1024 / 1024
32
+ else
33
+ raw_data[k] = v
34
+ end
35
+ end
36
+ raw_data
37
+ end
38
+
39
+ def unit_size
40
+ if @opts[:gb]
41
+ 'GBytes'
42
+ elsif @opts[:mb]
43
+ 'MBytes'
44
+ else
45
+ 'Pages (page size of 4096 bytes)'
46
+ end
47
+ end
48
+
49
+
50
+ def display
51
+ begin
52
+ @fm ||= Formatador.new
53
+ data = get_data
54
+ pretty_data = "[green]Used:[/] #{data[:used]} " + \
55
+ "[green]Free:[/] #{data[:free]} " + \
56
+ "[green]Available:[/] #{data[:available]} #{"\n" unless @opts[:watch] || @opts[:'show-units']}"
57
+ if @opts[:'show-units']
58
+ pretty_data = pretty_data + "[yellow]Units:[/] #{unit_size}#{"\n" unless @opts[:watch]}"
59
+ end
60
+ @fm.redisplay(pretty_data)
61
+ if @opts[:watch]
62
+ sleep 2
63
+ display
64
+ end
65
+ rescue Interrupt
66
+ puts "\n"
67
+ exit 0
68
+ end
69
+ end
70
+
71
+ display
data/osx-free.gemspec ADDED
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |gem|
2
+ gem.name = 'osx-free'
3
+ gem.version = '0.0.1'
4
+ gem.license = 'MIT'
5
+ gem.authors = ['dan pittman', 'Nicholas Weaver']
6
+ gem.email = ['danielscottt@gmail.com']
7
+ gem.description = %q{Because OS X Doesn't have a `free` command}
8
+ gem.summary = %q{Free Command for OS X}
9
+ gem.homepage = 'https://github.com/danielscottt/osx-free'
10
+
11
+ gem.add_dependency('trollop')
12
+ gem.add_dependency('formatador')
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: osx-free
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - dan pittman
8
+ - Nicholas Weaver
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-31 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: trollop
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: formatador
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ description: Because OS X Doesn't have a `free` command
43
+ email:
44
+ - danielscottt@gmail.com
45
+ executables:
46
+ - free
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - Gemfile
51
+ - Readme.md
52
+ - bin/free
53
+ - osx-free.gemspec
54
+ homepage: https://github.com/danielscottt/osx-free
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.1.10
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Free Command for OS X
78
+ test_files: []