sys-host 0.5.2-mswin32 → 0.6.0-mswin32
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.
- data/CHANGES +10 -0
- data/MANIFEST +15 -19
- data/README +23 -11
- data/Rakefile +79 -0
- data/Rakefile~ +67 -0
- data/doc/host.txt +2 -2
- data/lib/sys/host.rb +47 -20
- data/sys-host.gemspec +16 -16
- data/test/tc_host.rb +14 -31
- metadata +5 -5
- data/extconf.rb +0 -48
- data/install.rb +0 -40
data/CHANGES
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== 0.6.0 - 8-Jun-2007
|
2
|
+
* Now supports OS X!
|
3
|
+
* Added the Host.host_id class method.
|
4
|
+
* Bug/warning fix for OS X.
|
5
|
+
* HostError is now Host::Error.
|
6
|
+
* Added a Rakefile, including tasks for installation and testing.
|
7
|
+
* Fixed the gemspec (I hope).
|
8
|
+
* Lots of internal reorganization, including the removal of the install.rb
|
9
|
+
file. That's handled by the Rakefile.
|
10
|
+
|
1
11
|
== 0.5.2 - 27-Jun-2006
|
2
12
|
* Added the Host.info method for Linux.
|
3
13
|
|
data/MANIFEST
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
CHANGES
|
2
|
-
MANIFEST
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
ext/
|
12
|
-
ext/
|
13
|
-
ext/
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
lib/sys/windows.rb
|
18
|
-
|
19
|
-
test/tc_host.rb
|
1
|
+
* CHANGES
|
2
|
+
* MANIFEST
|
3
|
+
* README
|
4
|
+
* Rakefile
|
5
|
+
* sys-host.gemspec
|
6
|
+
* doc/host.txt
|
7
|
+
* examples/host_test.rb
|
8
|
+
* ext/constants.h
|
9
|
+
* ext/extconf.rb
|
10
|
+
* ext/bsd/bsd.c
|
11
|
+
* ext/generic/generic.c
|
12
|
+
* ext/linux/linux.c
|
13
|
+
* ext/sunos/sunos.c
|
14
|
+
* lib/sys/windows.rb
|
15
|
+
* test/tc_host.rb
|
data/README
CHANGED
@@ -1,14 +1,26 @@
|
|
1
1
|
= Prerequisites
|
2
|
-
Ruby 1.8.0 or later.
|
3
|
-
Ruby 1.8.2 or later preferred on Windows.
|
2
|
+
Ruby 1.8.0 or later.
|
3
|
+
Ruby 1.8.2 or later preferred on Windows.
|
4
|
+
|
5
|
+
= Synopsis
|
6
|
+
require 'sys/host'
|
7
|
+
include Sys
|
8
|
+
|
9
|
+
p Host.hostname
|
10
|
+
p Host.ip_addr
|
11
|
+
|
12
|
+
Host.info{ |h|
|
13
|
+
p h
|
14
|
+
}
|
4
15
|
|
5
16
|
= Installation
|
6
|
-
==
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
==
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
== Standard (non-gem) installation
|
18
|
+
rake test (optional)
|
19
|
+
rake install
|
20
|
+
|
21
|
+
== Gem Installation
|
22
|
+
rake test (optional)
|
23
|
+
rake install_gem
|
24
|
+
|
25
|
+
= Documentation
|
26
|
+
See the doc/host.txt file for more information.
|
data/Rakefile
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rbconfig'
|
5
|
+
include Config
|
6
|
+
|
7
|
+
desc "Clean the build files for the sys-host source for UNIX systems"
|
8
|
+
task :clean do
|
9
|
+
Dir.chdir('ext') do
|
10
|
+
unless RUBY_PLATFORM.match('mswin')
|
11
|
+
sh 'make distclean' if File.exists?('host.o')
|
12
|
+
FileUtils.rm_rf('host.c') if File.exists?('host.c')
|
13
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Build the sys-host package on UNIX systems (but don't install it)"
|
20
|
+
task :build => [:clean] do
|
21
|
+
Dir.chdir('ext') do
|
22
|
+
ruby 'extconf.rb'
|
23
|
+
sh 'make'
|
24
|
+
build_file = 'host.' + Config::CONFIG['DLEXT']
|
25
|
+
Dir.mkdir('sys') unless File.exists?('sys')
|
26
|
+
FileUtils.cp(build_file, 'sys')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Run the example program"
|
31
|
+
task :example => [:build] do
|
32
|
+
ruby 'host_test.rb'
|
33
|
+
end
|
34
|
+
|
35
|
+
if RUBY_PLATFORM.match('mswin')
|
36
|
+
desc "Install the sys-host package (non-gem)"
|
37
|
+
task :install do
|
38
|
+
install_dir = File.join(CONFIG['sitelibdir'], 'sys')
|
39
|
+
Dir.mkdir(install_dir) unless File.exists?(install_dir)
|
40
|
+
FileUtils.cp('lib/sys/windows.rb', install_dir, :verbose => true)
|
41
|
+
end
|
42
|
+
else
|
43
|
+
desc "Install the sys-host package (non-gem)"
|
44
|
+
task :install => [:build] do
|
45
|
+
Dir.chdir('ext') do
|
46
|
+
sh 'make install'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Install the sys-host package as a gem"
|
52
|
+
task :install_gem do
|
53
|
+
ruby 'sys-host.gemspec'
|
54
|
+
file = Dir["sys-host*.gem"].last
|
55
|
+
sh "gem install #{file}"
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Run the example sys-host program"
|
59
|
+
task :example => [:build] do
|
60
|
+
Dir.mkdir('sys') unless File.exists?('sys')
|
61
|
+
if RUBY_PLATFORM.match('mswin')
|
62
|
+
FileUtils.cp('lib/sys/windows.rb', 'lib/sys/host.rb')
|
63
|
+
ruby '-Ilib examples/host_test.rb'
|
64
|
+
else
|
65
|
+
ruby '-Iext examples/host_test.rb'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
Rake::TestTask.new do |t|
|
70
|
+
if RUBY_PLATFORM.match('mswin')
|
71
|
+
FileUtils.cp('lib/sys/windows.rb', 'lib/sys/host.rb')
|
72
|
+
t.libs << 'lib'
|
73
|
+
else
|
74
|
+
task :test => :build
|
75
|
+
t.libs << 'ext'
|
76
|
+
t.libs.delete('lib')
|
77
|
+
end
|
78
|
+
t.test_files = FileList['test/tc_host.rb']
|
79
|
+
end
|
data/Rakefile~
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rake/testtask'
|
4
|
+
require 'rbconfig'
|
5
|
+
include Config
|
6
|
+
|
7
|
+
desc "Clean the build files for the sys-host source for UNIX systems"
|
8
|
+
task :clean do
|
9
|
+
Dir.chdir('ext') do
|
10
|
+
unless RUBY_PLATFORM.match('mswin')
|
11
|
+
sh 'make distclean' if File.exists?('host.o')
|
12
|
+
FileUtils.rm_rf('host.c') if File.exists?('host.c')
|
13
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
FileUtils.rm_rf('sys') if File.exists?('sys')
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Build the sys-host package on UNIX systems (but don't install it)"
|
20
|
+
task :build => [:clean] do
|
21
|
+
Dir.chdir('ext') do
|
22
|
+
ruby 'extconf.rb'
|
23
|
+
sh 'make'
|
24
|
+
build_file = 'host.' + Config::CONFIG['DLEXT']
|
25
|
+
Dir.mkdir('sys') unless File.exists?('sys')
|
26
|
+
FileUtils.cp(build_file, 'sys')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Run the example program"
|
31
|
+
task :example => [:build] do
|
32
|
+
ruby 'host_test.rb'
|
33
|
+
end
|
34
|
+
|
35
|
+
if RUBY_PLATFORM.match('mswin')
|
36
|
+
desc "Install the sys-host package (non-gem)"
|
37
|
+
task :install do
|
38
|
+
install_dir = File.join(CONFIG['sitelibdir'], 'sys')
|
39
|
+
Dir.mkdir(install_dir) unless File.exists?(install_dir)
|
40
|
+
FileUtils.cp('lib/sys/windows.rb', install_dir, :verbose => true)
|
41
|
+
end
|
42
|
+
else
|
43
|
+
desc "Install the sys-host package (non-gem)"
|
44
|
+
task :install => [:build] do
|
45
|
+
Dir.chdir('ext') do
|
46
|
+
sh 'make install'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Install the sys-host package as a gem"
|
52
|
+
task :install_gem do
|
53
|
+
ruby 'sys-host.gemspec'
|
54
|
+
file = Dir["sys-host*.gem"].last
|
55
|
+
sh "gem install #{file}"
|
56
|
+
end
|
57
|
+
|
58
|
+
Rake::TestTask.new do |t|
|
59
|
+
if RUBY_PLATFORM.match('mswin')
|
60
|
+
t.libs << 'lib'
|
61
|
+
else
|
62
|
+
task :test => :build
|
63
|
+
t.libs << 'ext'
|
64
|
+
t.libs.delete('lib')
|
65
|
+
end
|
66
|
+
t.test_files = FileList['test/tc_host.rb']
|
67
|
+
end
|
data/doc/host.txt
CHANGED
@@ -33,7 +33,7 @@ Host.info(host=localhost){ |h| ... }
|
|
33
33
|
vary depending on your platform.
|
34
34
|
|
35
35
|
== Exception Classes
|
36
|
-
|
36
|
+
Host::Error < StandardError
|
37
37
|
Raised in the event of a failure for any of the class methods provided
|
38
38
|
with this package. Generally speaking, it means there was a failure in
|
39
39
|
the underlying gethostname() or gethostbyname() calls.
|
@@ -68,7 +68,7 @@ HostError < StandardError
|
|
68
68
|
Ruby's
|
69
69
|
|
70
70
|
== Copyright
|
71
|
-
Copyright 2002-
|
71
|
+
Copyright 2002-2007, Daniel J. Berger, djberg96 at gmail dot com
|
72
72
|
|
73
73
|
All Rights Reserved. This module is free software. It may be used,
|
74
74
|
redistributed and/or modified under the same terms as Ruby itself.
|
data/lib/sys/host.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'win32ole'
|
2
|
+
require 'socket'
|
3
|
+
require 'parsedate'
|
4
4
|
|
5
5
|
module Sys
|
6
|
-
class HostError < StandardError; end
|
7
6
|
class Host
|
8
|
-
|
7
|
+
class Error < StandardError; end
|
8
|
+
|
9
|
+
VERSION = '0.6.0'
|
10
|
+
|
9
11
|
fields = %w/
|
10
12
|
arp_always_source_route?
|
11
13
|
arp_use_ether_snap?
|
@@ -69,14 +71,20 @@ module Sys
|
|
69
71
|
wins_secondary_server
|
70
72
|
/
|
71
73
|
|
72
|
-
HostInfo = Struct.new("HostInfo"
|
74
|
+
HostInfo = Struct.new("HostInfo", *fields)
|
73
75
|
|
76
|
+
# Yields a HostInfo struct for each network adapter on 'host', or an array
|
77
|
+
# of HostInfo struct's in non-block form. The exact members of this struct
|
78
|
+
# vary depending on your platform.
|
79
|
+
#
|
74
80
|
def self.info(host=Socket.gethostname)
|
81
|
+
array = [] unless block_given?
|
75
82
|
cs = "winmgmts://#{host}/root/cimv2"
|
83
|
+
|
76
84
|
begin
|
77
85
|
wmi = WIN32OLE.connect(cs)
|
78
|
-
rescue WIN32OLERuntimeError =>
|
79
|
-
raise
|
86
|
+
rescue WIN32OLERuntimeError => err
|
87
|
+
raise Error, err
|
80
88
|
else
|
81
89
|
query = "
|
82
90
|
select * from Win32_NetworkAdapterConfiguration
|
@@ -86,14 +94,18 @@ module Sys
|
|
86
94
|
dhcp_expires = nic.DHCPLeaseExpires
|
87
95
|
dhcp_lease_obtained = nic.DHCPLeaseObtained
|
88
96
|
|
97
|
+
# It appears that the DHCP Lease Expired Date and DHCP Lease
|
98
|
+
# Obtained date can be so large as to cause an error. So, we
|
99
|
+
# simply return nil in these cases.
|
100
|
+
#
|
89
101
|
if dhcp_expires
|
90
102
|
parsed = ParseDate.parsedate(dhcp_expires)
|
91
|
-
dhcp_expires = Time.mktime(*parsed)
|
103
|
+
dhcp_expires = Time.mktime(*parsed) rescue nil
|
92
104
|
end
|
93
105
|
|
94
106
|
if dhcp_lease_obtained
|
95
107
|
parsed = ParseDate.parsedate(dhcp_lease_obtained)
|
96
|
-
dhcp_lease_obtained = Time.mktime(*parsed)
|
108
|
+
dhcp_lease_obtained = Time.mktime(*parsed) rescue nil
|
97
109
|
end
|
98
110
|
|
99
111
|
igmp_level = nil
|
@@ -142,7 +154,7 @@ module Sys
|
|
142
154
|
tcpip_netbios_options = "DisableNetbios"
|
143
155
|
end
|
144
156
|
|
145
|
-
|
157
|
+
struct = HostInfo.new(
|
146
158
|
nic.ArpAlwaysSourceRoute,
|
147
159
|
nic.ArpUseEtherSNAP,
|
148
160
|
nic.Caption,
|
@@ -204,41 +216,56 @@ module Sys
|
|
204
216
|
nic.WINSScopeID,
|
205
217
|
nic.WINSSecondaryServer
|
206
218
|
)
|
219
|
+
|
220
|
+
if block_given?
|
221
|
+
yield struct
|
222
|
+
else
|
223
|
+
array << struct
|
224
|
+
end
|
207
225
|
}
|
208
226
|
end
|
227
|
+
|
228
|
+
block_given? ? nil : array
|
209
229
|
end
|
210
230
|
|
231
|
+
# Returns the hostname of the current host. This may or not return
|
232
|
+
# the FQDN, depending on your system.
|
233
|
+
#
|
211
234
|
def self.hostname
|
235
|
+
host = nil
|
212
236
|
begin
|
213
237
|
wmi = WIN32OLE.connect("winmgmts://")
|
214
238
|
rescue WIN32OLERuntimeError => e
|
215
|
-
raise
|
239
|
+
raise Error, e
|
216
240
|
else
|
217
241
|
query = "
|
218
242
|
select * from Win32_NetworkAdapterConfiguration
|
219
243
|
where IPEnabled = True
|
220
244
|
"
|
221
245
|
wmi.ExecQuery(query).each{ |nic|
|
222
|
-
|
246
|
+
host = nic.DNSHostName
|
247
|
+
break
|
223
248
|
}
|
224
249
|
end
|
250
|
+
host
|
225
251
|
end
|
226
252
|
|
253
|
+
# Returns a list of unique IP addresses for the current host.
|
254
|
+
#
|
227
255
|
def self.ip_addr
|
256
|
+
ip_addrs = []
|
228
257
|
begin
|
229
258
|
wmi = WIN32OLE.connect("winmgmts://")
|
230
259
|
rescue WIN32OLERuntimeError => e
|
231
|
-
raise
|
260
|
+
raise Error, e
|
232
261
|
else
|
233
262
|
query = "
|
234
263
|
select * from Win32_NetworkAdapterConfiguration
|
235
264
|
where IPEnabled = True
|
236
265
|
"
|
237
|
-
wmi.ExecQuery(query).each{ |nic|
|
238
|
-
return nic.IPAddress
|
239
|
-
}
|
266
|
+
wmi.ExecQuery(query).each{ |nic| ip_addrs = nic.IPAddress }
|
240
267
|
end
|
241
|
-
|
242
|
-
|
268
|
+
ip_addrs.uniq
|
269
|
+
end
|
243
270
|
end
|
244
|
-
end
|
271
|
+
end
|
data/sys-host.gemspec
CHANGED
@@ -2,7 +2,7 @@ require "rubygems"
|
|
2
2
|
|
3
3
|
spec = Gem::Specification.new do |gem|
|
4
4
|
gem.name = "sys-host"
|
5
|
-
gem.version = "0.
|
5
|
+
gem.version = "0.6.0"
|
6
6
|
gem.author = "Daniel J. Berger"
|
7
7
|
gem.email = "djberg96@gmail.com"
|
8
8
|
gem.homepage = "http://www.rubyforge.org/projects/sysutils"
|
@@ -16,32 +16,32 @@ spec = Gem::Specification.new do |gem|
|
|
16
16
|
files = Dir["doc/*"] + Dir["test/*"] + Dir["[A-Z]*"]
|
17
17
|
files.delete_if{ |item| item.include?("CVS") }
|
18
18
|
gem.files = files
|
19
|
-
|
20
|
-
|
21
|
-
if $0 == __FILE__
|
19
|
+
|
22
20
|
if RUBY_PLATFORM.match("mswin")
|
23
21
|
File.rename("lib/sys/windows.rb", "lib/sys/host.rb")
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
gem.required_ruby_version = '>= 1.8.2'
|
23
|
+
gem.files += ["lib/sys/host.rb"]
|
24
|
+
gem.platform = Gem::Platform::WIN32
|
27
25
|
else
|
28
|
-
|
29
|
-
|
26
|
+
gem.required_ruby_version = '>= 1.8.0'
|
27
|
+
gem.extensions = ["ext/extconf.rb"]
|
30
28
|
|
31
29
|
case RUBY_PLATFORM
|
32
30
|
when /linux/i
|
33
|
-
file = 'ext/linux.c'
|
31
|
+
file = 'ext/linux/linux.c'
|
34
32
|
when /sunos|solaris/i
|
35
|
-
file = 'ext/sunos.c'
|
36
|
-
when /
|
37
|
-
file = 'ext/
|
33
|
+
file = 'ext/sunos/sunos.c'
|
34
|
+
when /bsd|darwin|powerpc|mach/i
|
35
|
+
file = 'ext/bsd/bsd.c'
|
38
36
|
else
|
39
|
-
file = 'ext/generic.c'
|
37
|
+
file = 'ext/generic/generic.c'
|
40
38
|
end
|
41
39
|
|
42
|
-
|
40
|
+
gem.files += ['ext/constants.h', file]
|
43
41
|
end
|
44
|
-
|
42
|
+
end
|
43
|
+
|
44
|
+
if $0 == __FILE__
|
45
45
|
Gem.manage_gems
|
46
46
|
Gem::Builder.new(spec).build
|
47
47
|
end
|
data/test/tc_host.rb
CHANGED
@@ -1,38 +1,15 @@
|
|
1
|
-
|
1
|
+
#################################################
|
2
2
|
# tc_host.rb
|
3
3
|
#
|
4
|
-
# Test suite for sys-host, all platforms
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
require "ftools"
|
9
|
-
Dir.chdir("..") if base == "test"
|
10
|
-
Dir.mkdir("sys") unless File.exists?("sys")
|
11
|
-
|
12
|
-
if RUBY_PLATFORM.match("mswin")
|
13
|
-
File.copy("lib/windows.rb", "sys/host.rb")
|
14
|
-
else
|
15
|
-
case RUBY_PLATFORM
|
16
|
-
when /hpux/i
|
17
|
-
File.copy("host.sl","sys")
|
18
|
-
when /osx|darwin|mac/i
|
19
|
-
File.copy("host.bundle","sys")
|
20
|
-
else
|
21
|
-
File.copy("host.so","sys")
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
$LOAD_PATH.unshift Dir.pwd
|
26
|
-
Dir.chdir("test") rescue nil
|
27
|
-
end
|
28
|
-
|
29
|
-
require "sys/host"
|
30
|
-
require "test/unit"
|
4
|
+
# Test suite for sys-host, all platforms.
|
5
|
+
#################################################
|
6
|
+
require 'sys/host'
|
7
|
+
require 'test/unit'
|
31
8
|
include Sys
|
32
9
|
|
33
10
|
class TC_Host < Test::Unit::TestCase
|
34
11
|
def test_version
|
35
|
-
assert_equal(
|
12
|
+
assert_equal('0.6.0', Host::VERSION)
|
36
13
|
end
|
37
14
|
|
38
15
|
def test_hostname
|
@@ -48,14 +25,20 @@ class TC_Host < Test::Unit::TestCase
|
|
48
25
|
assert_kind_of(Array, Host.ip_addr)
|
49
26
|
end
|
50
27
|
|
28
|
+
def test_host_id
|
29
|
+
assert_respond_to(Host, :host_id)
|
30
|
+
assert_nothing_raised{ Host.host_id }
|
31
|
+
assert_kind_of(Integer, Host.host_id)
|
32
|
+
end
|
33
|
+
|
51
34
|
def test_info
|
52
|
-
if RUBY_PLATFORM =~ /mswin|solaris|linux/i
|
35
|
+
if RUBY_PLATFORM =~ /mswin|solaris|linux|bsd|mach|darwin|osx/i
|
53
36
|
assert_respond_to(Host, :info)
|
54
37
|
assert_nothing_raised{ Host.info }
|
55
38
|
assert_kind_of(Array, Host.info)
|
56
39
|
assert_kind_of(Struct::HostInfo, Host.info.first)
|
57
40
|
assert_nil(Host.info{ })
|
58
|
-
assert_nothing_raised{
|
41
|
+
assert_nothing_raised{ 100.times{ Host.info } }
|
59
42
|
else
|
60
43
|
puts "The 'test_info' test was skipped on this platform"
|
61
44
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.4
|
3
3
|
specification_version: 1
|
4
4
|
name: sys-host
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date:
|
6
|
+
version: 0.6.0
|
7
|
+
date: 2007-06-09 00:00:00 -06:00
|
8
8
|
summary: Provides hostname and ip address info for a given host
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -35,10 +35,10 @@ files:
|
|
35
35
|
- doc
|
36
36
|
- examples
|
37
37
|
- ext
|
38
|
-
- extconf.rb
|
39
|
-
- install.rb
|
40
38
|
- lib
|
41
39
|
- MANIFEST
|
40
|
+
- Rakefile
|
41
|
+
- Rakefile~
|
42
42
|
- README
|
43
43
|
- sys-host.gemspec
|
44
44
|
- test
|
data/extconf.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require "mkmf"
|
2
|
-
require "ftools"
|
3
|
-
|
4
|
-
# Remove any symlinks that may already exist
|
5
|
-
File.delete('host.c') if File.exists?('host.c')
|
6
|
-
File.delete('constants.h') if File.exists?('constants.h')
|
7
|
-
|
8
|
-
have_func("gethostid")
|
9
|
-
|
10
|
-
case RUBY_PLATFORM
|
11
|
-
when /freebsd/i
|
12
|
-
have_func("getipnodebyname")
|
13
|
-
File.symlink("ext/freebsd.c", "host.c")
|
14
|
-
File.symlink("ext/constants.h", "constants.h")
|
15
|
-
when /sunos|solaris/i
|
16
|
-
have_library("nsl")
|
17
|
-
have_library("socket")
|
18
|
-
have_func("gethostbyname_r", "netdb.h")
|
19
|
-
have_func("gethostent_r", "netdb.h")
|
20
|
-
File.symlink("ext/sunos.c", "host.c")
|
21
|
-
File.symlink("ext/constants.h", "constants.h")
|
22
|
-
when /linux/i
|
23
|
-
have_func("gethostbyname_r", "netdb.h")
|
24
|
-
have_func("gethostent_r", "netdb.h")
|
25
|
-
File.symlink("ext/linux.c", "host.c")
|
26
|
-
File.symlink("ext/constants.h", "constants.h")
|
27
|
-
when /win32|windows|dos|mingw|cygwin/i
|
28
|
-
STDERR.puts "Run the 'install.rb' script to install on Windows systems"
|
29
|
-
else
|
30
|
-
File.symlink("ext/generic.c", "host.c")
|
31
|
-
File.symlink("ext/constants.h", "constants.h")
|
32
|
-
end
|
33
|
-
|
34
|
-
# Rename the windows.rb file to prevent 'make install' from installing it
|
35
|
-
unless RUBY_PLATFORM.match("mswin")
|
36
|
-
if File.exists?('lib/sys/windows.rb')
|
37
|
-
File.rename('lib/sys/windows.rb', 'lib/sys/windows.orig')
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
have_func("inet_ntop")
|
42
|
-
|
43
|
-
# Already grabbed this from netdb.h on Solaris
|
44
|
-
unless RUBY_PLATFORM =~ /sunos|solaris/i
|
45
|
-
have_func("gethostent_r")
|
46
|
-
end
|
47
|
-
|
48
|
-
create_makefile("sys/host")
|
data/install.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
################################################
|
2
|
-
# install.rb - for sys-host
|
3
|
-
#
|
4
|
-
# For pure Ruby versions only
|
5
|
-
################################################
|
6
|
-
require 'rbconfig'
|
7
|
-
require 'ftools'
|
8
|
-
include Config
|
9
|
-
install_dir = CONFIG['sitelibdir'] + '/sys'
|
10
|
-
|
11
|
-
file = ""
|
12
|
-
|
13
|
-
case RUBY_PLATFORM
|
14
|
-
when /windows|win32|mingw|cygwin|dos/i
|
15
|
-
file = "lib/os/windows.rb"
|
16
|
-
else
|
17
|
-
STDERR.puts "Use 'extconf.rb/make/make site-install' for this platform"
|
18
|
-
exit
|
19
|
-
end
|
20
|
-
|
21
|
-
# Create the 'sys' toplevel directory if it doesn't already exist
|
22
|
-
begin
|
23
|
-
unless File.exist?(install_dir)
|
24
|
-
Dir.mkdir(install_dir)
|
25
|
-
end
|
26
|
-
rescue Errno::EACCES => e
|
27
|
-
puts "Unable to create #{install_dir}: #{e}"
|
28
|
-
exit
|
29
|
-
end
|
30
|
-
|
31
|
-
# Finally, copy the file to the appropriate directory
|
32
|
-
begin
|
33
|
-
File.copy(file,"#{install_dir}/host.rb")
|
34
|
-
puts "cp #{file} #{install_dir}/host.rb"
|
35
|
-
rescue Errno::EACCES => e
|
36
|
-
puts "Unable to install cpu.rb to #{install_dir}: #{e}"
|
37
|
-
exit
|
38
|
-
end
|
39
|
-
|
40
|
-
puts "Installation successful"
|