os 1.0.1 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/ChangeLog +15 -0
- data/Gemfile.lock +1 -10
- data/README.md +104 -0
- data/Rakefile +11 -3
- data/VERSION +1 -1
- data/lib/os.rb +18 -3
- data/os.gemspec +24 -9
- metadata +13 -13
- data/README.rdoc +0 -78
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8ceda108b09b3210f4cab0b411d8fe76bb69c74b3054a86e15ba533074086ffe
|
4
|
+
data.tar.gz: c59bede2a6e772a83b13543951b7824a1811c376c1e313e16ec20e96a37f7986
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b574706218e68b4ce5d9d9c82abb967032ec5fa1d4363c268cbd89e3261955de0d8e0c56834d6e813c06b23900cade81087b86ff52f166418ab339d03ced7197
|
7
|
+
data.tar.gz: 6a692f3db11e912c795a66450a1e2ae70e9819c2f079b956584339f0be0b7241204cacf10153dd8e57e2b9ab4eb9730603d323ddfa801509774f24279435733c
|
data/ChangeLog
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
1.1.4
|
2
|
+
Fix circular dependency
|
3
|
+
|
4
|
+
1.1.2
|
5
|
+
Make rss_bytes return bytes in linux/OS X, like it always should have
|
6
|
+
|
7
|
+
1.1.1
|
8
|
+
fix skip blank lines in OS#parse_os_release
|
9
|
+
|
10
|
+
1.1.0
|
11
|
+
Add app_config_path method
|
12
|
+
Cleans up dev dependency specs
|
13
|
+
Detect underlying Docker containers method
|
14
|
+
Add Linux-specific OS#parse_os_release method
|
15
|
+
|
1
16
|
1.0.1
|
2
17
|
add within docker method
|
3
18
|
|
data/Gemfile.lock
CHANGED
@@ -9,14 +9,6 @@ GEM
|
|
9
9
|
diff-lcs (1.1.3)
|
10
10
|
power_assert (1.0.2)
|
11
11
|
rake (0.9.6)
|
12
|
-
rspec (2.5.0)
|
13
|
-
rspec-core (~> 2.5.0)
|
14
|
-
rspec-expectations (~> 2.5.0)
|
15
|
-
rspec-mocks (~> 2.5.0)
|
16
|
-
rspec-core (2.5.2)
|
17
|
-
rspec-expectations (2.5.0)
|
18
|
-
diff-lcs (~> 1.1.2)
|
19
|
-
rspec-mocks (2.5.0)
|
20
12
|
test-unit (3.2.3)
|
21
13
|
power_assert
|
22
14
|
|
@@ -25,10 +17,9 @@ PLATFORMS
|
|
25
17
|
x86-mingw32
|
26
18
|
|
27
19
|
DEPENDENCIES
|
28
|
-
os!
|
29
20
|
rake (~> 0.8)
|
30
21
|
rspec (~> 2.5.0)
|
31
22
|
test-unit (~> 3)
|
32
23
|
|
33
24
|
BUNDLED WITH
|
34
|
-
1.
|
25
|
+
2.1.4
|
data/README.md
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
The OS gem allows for some easy telling if you're on windows or not.
|
2
|
+
|
3
|
+
```ruby
|
4
|
+
require 'os'
|
5
|
+
|
6
|
+
>> OS.windows?
|
7
|
+
=> true # or OS.doze?
|
8
|
+
|
9
|
+
>> OS.bits
|
10
|
+
=> 32
|
11
|
+
|
12
|
+
>> OS.java?
|
13
|
+
=> true # if you're running in jruby. Also OS.jruby?
|
14
|
+
|
15
|
+
>> OS.ruby_bin
|
16
|
+
=> "c:\ruby18\bin\ruby.exe" # or "/usr/local/bin/ruby" or what not
|
17
|
+
|
18
|
+
>> OS.posix?
|
19
|
+
=> false # true for linux, os x, cygwin
|
20
|
+
|
21
|
+
>> OS.mac? # or OS.osx? or OS.x?
|
22
|
+
=> false
|
23
|
+
|
24
|
+
>> OS.dev_null
|
25
|
+
=> "NUL" # or "/dev/null" depending on which platform
|
26
|
+
|
27
|
+
>> OS.rss_bytes
|
28
|
+
=> 12300033 # number of rss bytes this process is using currently. Basically "total in memory footprint" (doesn't include RAM used by the process that's in swap/page file)
|
29
|
+
|
30
|
+
>> puts OS.report
|
31
|
+
==> # a yaml report of helpful values
|
32
|
+
---
|
33
|
+
arch: x86_64-darwin10.6.0
|
34
|
+
target_os: darwin10.6.0
|
35
|
+
target_vendor: apple
|
36
|
+
target_cpu: x86_64
|
37
|
+
target: x86_64-apple-darwin10.6.0
|
38
|
+
host_os: darwin10.6.0
|
39
|
+
host_vendor: apple
|
40
|
+
host_cpu: i386
|
41
|
+
host: i386-apple-darwin10.6.0
|
42
|
+
RUBY_PLATFORM: x86_64-darwin10.6.0
|
43
|
+
|
44
|
+
>> OS.cpu_count
|
45
|
+
=> 2 # number of cores, doesn't include hyper-threaded cores.
|
46
|
+
|
47
|
+
>> OS.open_file_command
|
48
|
+
=> "start" # or open on mac, or xdg-open on linux (all designed to open a file)
|
49
|
+
|
50
|
+
>> OS::Underlying.windows?
|
51
|
+
=> true # true for cygwin or MRI, whereas OS.windows? is false for cygwin
|
52
|
+
|
53
|
+
>> OS::Underlying.bsd?
|
54
|
+
=> true # true for OS X
|
55
|
+
|
56
|
+
>> OS::Underlying.docker?
|
57
|
+
=> false # true if running inside a Docker container
|
58
|
+
|
59
|
+
>> pp OS.parse_os_release
|
60
|
+
==> # A hash of details on the current Linux distro (or an exception if not Linux)
|
61
|
+
{:NAME=>"Ubuntu",
|
62
|
+
:VERSION=>"18.04.4 LTS (Bionic Beaver)",
|
63
|
+
:ID=>"ubuntu",
|
64
|
+
:ID_LIKE=>"debian",
|
65
|
+
:PRETTY_NAME=>"Ubuntu 18.04.4 LTS",
|
66
|
+
:VERSION_ID=>"18.04",
|
67
|
+
:HOME_URL=>"https://www.ubuntu.com/",
|
68
|
+
:SUPPORT_URL=>"https://help.ubuntu.com/",
|
69
|
+
:BUG_REPORT_URL=>"https://bugs.launchpad.net/ubuntu/",
|
70
|
+
:PRIVACY_POLICY_URL=>
|
71
|
+
"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy",
|
72
|
+
:VERSION_CODENAME=>"bionic",
|
73
|
+
:UBUNTU_CODENAME=>"bionic"}
|
74
|
+
```
|
75
|
+
|
76
|
+
If there are any other features you'd like, let me know, I'll do what I can to add them :)
|
77
|
+
|
78
|
+
http://github.com/rdp/os for feedback et al
|
79
|
+
|
80
|
+
Related projects:
|
81
|
+
|
82
|
+
rubygems:
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
Gem::Platform.local
|
86
|
+
Gem.ruby
|
87
|
+
```
|
88
|
+
|
89
|
+
The reason Gem::Platform.local felt wrong to me is that it treated cygwin as windows--which for most build environments, is wrong. Hence the creation of this gem.
|
90
|
+
|
91
|
+
the facets gem (has a class similar to rubygems, above)
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
require 'facets/platform'
|
95
|
+
Platform.local
|
96
|
+
```
|
97
|
+
|
98
|
+
the ["platform" gem](http://rubydoc.info/github/ffi/ffi/master/FFI/Platform), itself (a different gem)
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
FFI::Platform::OS
|
102
|
+
```
|
103
|
+
|
104
|
+
License: MIT (see LICENSE file)
|
data/Rakefile
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
require 'rubygems' if RUBY_VERSION < '1.9.0'
|
2
2
|
|
3
|
+
# HOW TO DEPLOY
|
4
|
+
# bump VERSION file manually
|
5
|
+
# rake release seems all messed up, doesn't publish it anyway...
|
3
6
|
# Don't forget to run rake gemspec with each release! ... I think...
|
7
|
+
# then manually edit os.gemspec remove duplicatee rspecs, circular dependency on os? HUH?
|
8
|
+
# # then gem build os.gemspec
|
9
|
+
# rake build doesn't work???
|
10
|
+
# sooo...
|
11
|
+
# ...gem push os-1.1.2.gem
|
4
12
|
|
5
13
|
begin
|
6
14
|
require 'jeweler'
|
@@ -14,10 +22,10 @@ begin
|
|
14
22
|
gem.license = "MIT"
|
15
23
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
24
|
# gem.add_development_dependency "fast_require"
|
17
|
-
gem.add_development_dependency "rspec", ">= 2.0"
|
25
|
+
# gem.add_development_dependency "rspec", ">= 2.0"
|
18
26
|
end
|
19
|
-
rescue LoadError
|
20
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
27
|
+
rescue LoadError => e
|
28
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler #{e}"
|
21
29
|
end
|
22
30
|
|
23
31
|
require 'rspec/core/rake_task'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.4
|
data/lib/os.rb
CHANGED
@@ -155,15 +155,15 @@ class OS
|
|
155
155
|
end
|
156
156
|
processes = wmi.ExecQuery("select * from win32_process where ProcessId = #{Process.pid}")
|
157
157
|
memory_used = nil
|
158
|
-
# only allow for one...
|
158
|
+
# only allow for one process...
|
159
159
|
for process in processes
|
160
|
-
raise if memory_used
|
160
|
+
raise "multiple processes same pid?" if memory_used
|
161
161
|
memory_used = process.WorkingSetSize.to_i
|
162
162
|
end
|
163
163
|
memory_used
|
164
164
|
end
|
165
165
|
elsif OS.posix? # linux [though I've heard it works in OS X]
|
166
|
-
`ps -o rss= -p #{Process.pid}`.to_i # in
|
166
|
+
`ps -o rss= -p #{Process.pid}`.to_i * 1024 # in kiloBytes
|
167
167
|
else
|
168
168
|
raise 'unknown rss for this platform'
|
169
169
|
end
|
@@ -282,6 +282,21 @@ class OS
|
|
282
282
|
end
|
283
283
|
end
|
284
284
|
|
285
|
+
def self.parse_os_release
|
286
|
+
if OS.linux? && File.exist?('/etc/os-release')
|
287
|
+
output = {}
|
288
|
+
|
289
|
+
File.read('/etc/os-release').each_line do |line|
|
290
|
+
parsed_line = line.chomp.tr('"', '').split('=')
|
291
|
+
next if parsed_line.empty?
|
292
|
+
output[parsed_line[0].to_sym] = parsed_line[1]
|
293
|
+
end
|
294
|
+
output
|
295
|
+
else
|
296
|
+
raise "File /etc/os-release doesn't exists or not Linux"
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
285
300
|
class << self
|
286
301
|
alias :doze? :windows? # a joke name but I use it and like it :P
|
287
302
|
alias :jruby? :java?
|
data/os.gemspec
CHANGED
@@ -2,22 +2,22 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: os 1.
|
5
|
+
# stub: os 1.1.4 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "os".freeze
|
9
|
-
s.version = "1.
|
9
|
+
s.version = "1.1.4"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["rdp".freeze, "David McCullars".freeze]
|
14
|
-
s.date = "
|
14
|
+
s.date = "2021-11-07"
|
15
15
|
s.description = "The OS gem allows for some useful and easy functions, like OS.windows? (=> true or false) OS.bits ( => 32 or 64) etc\"".freeze
|
16
16
|
s.email = "rogerpack2005@gmail.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"ChangeLog",
|
19
19
|
"LICENSE",
|
20
|
-
"README.
|
20
|
+
"README.md"
|
21
21
|
]
|
22
22
|
s.files = [
|
23
23
|
".autotest",
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Gemfile",
|
27
27
|
"Gemfile.lock",
|
28
28
|
"LICENSE",
|
29
|
-
"README.
|
29
|
+
"README.md",
|
30
30
|
"Rakefile",
|
31
31
|
"VERSION",
|
32
32
|
"autotest/discover.rb",
|
@@ -39,10 +39,25 @@ Gem::Specification.new do |s|
|
|
39
39
|
]
|
40
40
|
s.homepage = "http://github.com/rdp/os".freeze
|
41
41
|
s.licenses = ["MIT".freeze]
|
42
|
-
s.rubygems_version = "2.
|
42
|
+
s.rubygems_version = "2.7.6".freeze
|
43
43
|
s.summary = "Simple and easy way to know if you're on windows or not (reliably), as well as how many bits the OS is, etc.".freeze
|
44
44
|
|
45
|
-
s.
|
46
|
-
|
47
|
-
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
s.specification_version = 4
|
47
|
+
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
+
s.add_development_dependency(%q<rake>.freeze, ["~> 0.8"])
|
50
|
+
s.add_development_dependency(%q<test-unit>.freeze, ["~> 3"])
|
51
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 2.0"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<rake>.freeze, ["~> 0.8"])
|
54
|
+
s.add_dependency(%q<test-unit>.freeze, ["~> 3"])
|
55
|
+
s.add_dependency(%q<rspec>.freeze, [">= 2.0"])
|
56
|
+
end
|
57
|
+
else
|
58
|
+
s.add_dependency(%q<rake>.freeze, ["~> 0.8"])
|
59
|
+
s.add_dependency(%q<test-unit>.freeze, ["~> 3"])
|
60
|
+
s.add_dependency(%q<rspec>.freeze, [">= 2.0"])
|
61
|
+
end
|
48
62
|
end
|
63
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: os
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rdp
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -26,33 +26,33 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0.8'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: test-unit
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: '3'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: '3'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '2.0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '2.0'
|
56
56
|
description: The OS gem allows for some useful and easy functions, like OS.windows?
|
57
57
|
(=> true or false) OS.bits ( => 32 or 64) etc"
|
58
58
|
email: rogerpack2005@gmail.com
|
@@ -61,7 +61,7 @@ extensions: []
|
|
61
61
|
extra_rdoc_files:
|
62
62
|
- ChangeLog
|
63
63
|
- LICENSE
|
64
|
-
- README.
|
64
|
+
- README.md
|
65
65
|
files:
|
66
66
|
- ".autotest"
|
67
67
|
- ".document"
|
@@ -69,7 +69,7 @@ files:
|
|
69
69
|
- Gemfile
|
70
70
|
- Gemfile.lock
|
71
71
|
- LICENSE
|
72
|
-
- README.
|
72
|
+
- README.md
|
73
73
|
- Rakefile
|
74
74
|
- VERSION
|
75
75
|
- autotest/discover.rb
|
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
99
|
version: '0'
|
100
100
|
requirements: []
|
101
101
|
rubyforge_project:
|
102
|
-
rubygems_version: 2.
|
102
|
+
rubygems_version: 2.7.6
|
103
103
|
signing_key:
|
104
104
|
specification_version: 4
|
105
105
|
summary: Simple and easy way to know if you're on windows or not (reliably), as well
|
data/README.rdoc
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
The OS gem allows for some easy telling if you're on windows or not.
|
2
|
-
|
3
|
-
require 'os'
|
4
|
-
|
5
|
-
>> OS.windows?
|
6
|
-
=> true # or OS.doze?
|
7
|
-
|
8
|
-
>> OS.bits
|
9
|
-
=> 32
|
10
|
-
|
11
|
-
>> OS.java?
|
12
|
-
=> true # if you're running in jruby. Also OS.jruby?
|
13
|
-
|
14
|
-
>> OS.ruby_bin
|
15
|
-
=> "c:\ruby18\bin\ruby.exe" # or "/usr/local/bin/ruby" or what not
|
16
|
-
|
17
|
-
>> OS.posix?
|
18
|
-
=> false # true for linux, os x, cygwin
|
19
|
-
|
20
|
-
>> OS.mac? # or OS.osx? or OS.x?
|
21
|
-
=> false
|
22
|
-
|
23
|
-
>> OS.dev_null
|
24
|
-
=> "NUL" # or "/dev/null" depending on which platform
|
25
|
-
|
26
|
-
>> OS.rss_bytes
|
27
|
-
=> 12300033 # number of rss bytes this process is using currently. Basically "total in memory footprint" (doesn't include RAM used by the process that's in swap/page file)
|
28
|
-
|
29
|
-
>> puts OS.report
|
30
|
-
==> # a yaml report of helpful values
|
31
|
-
---
|
32
|
-
arch: x86_64-darwin10.6.0
|
33
|
-
target_os: darwin10.6.0
|
34
|
-
target_vendor: apple
|
35
|
-
target_cpu: x86_64
|
36
|
-
target: x86_64-apple-darwin10.6.0
|
37
|
-
host_os: darwin10.6.0
|
38
|
-
host_vendor: apple
|
39
|
-
host_cpu: i386
|
40
|
-
host: i386-apple-darwin10.6.0
|
41
|
-
RUBY_PLATFORM: x86_64-darwin10.6.0
|
42
|
-
|
43
|
-
>> OS.cpu_count
|
44
|
-
=> 2 # number of cores, doesn't include hyper-threaded cores.
|
45
|
-
|
46
|
-
>> OS.open_file_command
|
47
|
-
=> "start" # or open on mac, or xdg-open on linux (all designed to open a file)
|
48
|
-
|
49
|
-
>> OS::Underlying.windows?
|
50
|
-
=> true # true for cygwin or MRI, whereas OS.windows? is false for cygwin
|
51
|
-
|
52
|
-
>> OS::Underlying.bsd?
|
53
|
-
=> true # true for OS X
|
54
|
-
|
55
|
-
>> OS::Underlying.docker?
|
56
|
-
=> false # true if running inside a Docker container
|
57
|
-
|
58
|
-
If there are any other features you'd like, let me know, I'll do what I can to add them :)
|
59
|
-
|
60
|
-
http://github.com/rdp/os for feedback et al
|
61
|
-
|
62
|
-
Related projects:
|
63
|
-
|
64
|
-
rubygems:
|
65
|
-
Gem::Platform.local
|
66
|
-
Gem.ruby
|
67
|
-
The reason Gem::Platform.local felt wrong to me is that it treated cygwin as windows--which for most build environments, is wrong. Hence the creation of this gem.
|
68
|
-
|
69
|
-
the facets gem (has a class similar to rubygems, above)
|
70
|
-
require 'facets/platform'
|
71
|
-
Platform.local
|
72
|
-
|
73
|
-
the "platform" gem, itself (a different gem)
|
74
|
-
|
75
|
-
FFI::Platform::OS
|
76
|
-
http://rubydoc.info/github/ffi/ffi/master/FFI/Platform
|
77
|
-
|
78
|
-
License: MIT (see LICENSE file)
|