sys-admin 1.7.5 → 1.7.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 219597639587e8c6d43f3a6d638d7f3ad11de0d3ea7cb2a1754e424f939b7622
4
- data.tar.gz: 8d91cbd9e39bdb7ab4dc7f9ba4dc854b093de06b02028aa5934f27d3255e4bd2
3
+ metadata.gz: 4d87741306e11fa28da2582a0c3bd0ba994cbeaea92744afa894bc07e996b975
4
+ data.tar.gz: 2c2d445e5b58d5298741bb33e1ffdaa12b509e092ea8d5ee1c7139ff6afa84b6
5
5
  SHA512:
6
- metadata.gz: 4da726426d1300cf1cc0d18f3149c347d52e290542de35d81a7a0b8a036ea2724acbb5e6d22af10939ec12862ef87be46ecc473bcd83a7439f486bc5eb9b5aac
7
- data.tar.gz: 494f981d6621a9f8b0fe25e9bb759e41b8ad0a3c35039ee907ce84ead9630f34f1c24e9fb3369b58756717854e1454ca9044665f1635e03096b605ade0e6e7ad
6
+ metadata.gz: de6f1e3e923441b4be9a73c4c9a93509d75a546c7a8b0a9e0681b161fa72332f859d498aa46fee36c60ebdc01c651dca10a89f93d4c3fe198a00eb73f7865d54
7
+ data.tar.gz: 87375e7a062284f4713accc6e8b9ad245f9d0c66184d614789cef89b9a0e20b6ed1272b9cd8ad7e25f7d118e1100ba4d71f0c69aadead4e4e5b859fc330f84ed
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/CHANGES.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 1.7.6 - 24-Mar-2021
2
+ * Changed the implementation for `Admin.get_login` on Linux since the
3
+ underlying `getlogin` C function is unreliable, especially in certain
4
+ virtualized environments.
5
+ * Added win32-security back to the gemspec as a dependency for Windows.
6
+ I'm not sure why I removed it, and bundler definitely needs it.
7
+ * Fixed some private access modifiers that weren't actually doing anything.
8
+
1
9
  ## 1.7.5 - 30-Dec-2020
2
10
  * Switched from rdoc to markdown since github isn't rendering rdoc properly.
3
11
 
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org' do
2
+ gemspec
3
+ end
data/MANIFEST.md CHANGED
@@ -1,9 +1,10 @@
1
1
  * sys-admin.gemspec
2
- * CHANGES.rdoc
2
+ * CHANGES.md
3
3
  * LICENSE
4
- * MANIFEST.rdoc
4
+ * MANIFEST.md
5
+ * README.md
6
+ * Gemfile
5
7
  * Rakefile
6
- * README.rdoc
7
8
  * certs/djberg96_pub.pem
8
9
  * examples/groups.rb
9
10
  * examples/users.rb
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'rake/clean'
3
3
  require 'rake/testtask'
4
4
  require 'rbconfig'
5
5
 
6
- CLEAN.include("**/*.gem", "**/*.rbx", "**/*.rbc", "ruby.core")
6
+ CLEAN.include("**/*.gem", "**/*.rbx", "**/*.rbc", "ruby.core", "**/*.lock")
7
7
 
8
8
  namespace :gem do
9
9
  desc "Create the sys-uname gem"
@@ -11,7 +11,7 @@ namespace :gem do
11
11
  require 'rubygems/package'
12
12
  spec = eval(IO.read('sys-admin.gemspec'))
13
13
  spec.signing_key = File.join(Dir.home, '.ssh', 'gem-private_key.pem')
14
- Gem::Package.build(spec, true)
14
+ Gem::Package.build(spec)
15
15
  end
16
16
 
17
17
  desc "Install the sys-uname gem"
data/lib/bsd/sys/admin.rb CHANGED
@@ -6,10 +6,9 @@ require 'rbconfig'
6
6
 
7
7
  module Sys
8
8
  class Admin
9
- private
10
-
11
9
  # :no-doc:
12
10
  BUF_MAX = 65536 # Max buffer for retry
11
+ private_constant :BUF_MAX
13
12
 
14
13
  # I'm making some aliases here to prevent potential conflicts
15
14
  attach_function :open_c, :open, [:string, :int], :int
@@ -22,8 +21,7 @@ module Sys
22
21
  attach_function :getgrnam_r, [:string, :pointer, :pointer, :size_t, :pointer], :int
23
22
  attach_function :getgrgid_r, [:long, :pointer, :pointer, :size_t, :pointer], :int
24
23
 
25
- private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r, :getgrnam_r
26
- private_class_method :getgrgid_r
24
+ private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r, :getgrnam_r, :getgrgid_r
27
25
  private_class_method :open_c, :pread_c, :close_c
28
26
 
29
27
  # struct passwd from /usr/include/pwd.h
@@ -48,6 +46,8 @@ module Sys
48
46
  layout(*fields)
49
47
  end
50
48
 
49
+ private_constant :PasswdStruct
50
+
51
51
  # struct group from /usr/include/grp.h
52
52
  class GroupStruct < FFI::Struct
53
53
  layout(
@@ -58,6 +58,8 @@ module Sys
58
58
  )
59
59
  end
60
60
 
61
+ private_constant :GroupStruct
62
+
61
63
  # I'm blending the timeval struct in directly here
62
64
  class LastlogStruct < FFI::Struct
63
65
  layout(
@@ -67,7 +69,7 @@ module Sys
67
69
  )
68
70
  end
69
71
 
70
- public
72
+ private_constant :LastlogStruct
71
73
 
72
74
  # Returns the login for the current process.
73
75
  #
@@ -192,8 +194,6 @@ module Sys
192
194
  groups
193
195
  end
194
196
 
195
- private
196
-
197
197
  # Takes a GroupStruct and converts it to a Group object.
198
198
  def self.get_group_from_struct(grp)
199
199
  Group.new do |g|
@@ -204,6 +204,8 @@ module Sys
204
204
  end
205
205
  end
206
206
 
207
+ private_class_method :get_group_from_struct
208
+
207
209
  # Takes a UserStruct and converts it to a User object.
208
210
  def self.get_user_from_struct(pwd)
209
211
  user = User.new do |u|
@@ -230,6 +232,8 @@ module Sys
230
232
  user
231
233
  end
232
234
 
235
+ private_class_method :get_user_from_struct
236
+
233
237
  # Get lastlog information for the given user.
234
238
  def self.get_lastlog_info(uid)
235
239
  logfile = '/var/log/lastlog'
@@ -252,5 +256,7 @@ module Sys
252
256
 
253
257
  lastlog
254
258
  end
259
+
260
+ private_class_method :get_lastlog_info
255
261
  end
256
262
  end
@@ -5,10 +5,9 @@ require 'sys/admin/common'
5
5
 
6
6
  module Sys
7
7
  class Admin
8
- private
9
-
10
8
  # :no-doc:
11
9
  BUF_MAX = 65536 # Max buf size for retry.
10
+ private_constant :BUF_MAX
12
11
 
13
12
  attach_function :getlogin_r, [:pointer, :int], :int
14
13
  attach_function :getpwnam_r, [:string, :pointer, :pointer, :size_t, :pointer], :int
@@ -17,8 +16,8 @@ module Sys
17
16
  attach_function :getgrgid_r, [:long, :pointer, :pointer, :size_t, :pointer], :int
18
17
  attach_function :getlastlogx, [:long, :pointer], :pointer
19
18
 
20
- private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r, :getgrnam_r
21
- private_class_method :getgrgid_r, :getlastlogx
19
+ private_class_method :getlogin_r, :getpwnam_r, :getpwuid_r
20
+ private_class_method :getgrnam_r, :getgrgid_r, :getlastlogx
22
21
 
23
22
  # struct passwd from /usr/include/pwd.h
24
23
  class PasswdStruct < FFI::Struct
@@ -36,6 +35,8 @@ module Sys
36
35
  )
37
36
  end
38
37
 
38
+ private_constant :PasswdStruct
39
+
39
40
  # struct group from /usr/include/grp.h
40
41
  class GroupStruct < FFI::Struct
41
42
  layout(
@@ -46,6 +47,8 @@ module Sys
46
47
  )
47
48
  end
48
49
 
50
+ private_constant :GroupStruct
51
+
49
52
  # I'm blending the timeval struct in directly here
50
53
  class LastlogxStruct < FFI::Struct
51
54
  layout(
@@ -56,7 +59,7 @@ module Sys
56
59
  )
57
60
  end
58
61
 
59
- public
62
+ private_constant :LastlogxStruct
60
63
 
61
64
  # Returns the login for the current process.
62
65
  #
@@ -185,8 +188,6 @@ module Sys
185
188
  groups
186
189
  end
187
190
 
188
- private
189
-
190
191
  # Takes a GroupStruct and converts it to a Group object.
191
192
  def self.get_group_from_struct(grp)
192
193
  Group.new do |g|
@@ -197,6 +198,8 @@ module Sys
197
198
  end
198
199
  end
199
200
 
201
+ private_class_method :get_group_from_struct
202
+
200
203
  # Takes a UserStruct and converts it to a User object.
201
204
  def self.get_user_from_struct(pwd)
202
205
  user = User.new do |u|
@@ -223,6 +226,8 @@ module Sys
223
226
  user
224
227
  end
225
228
 
229
+ private_class_method :get_user_from_struct
230
+
226
231
  # Gets lastlog information for the given user.
227
232
  def self.get_lastlog_info(uid)
228
233
  lastlog = LastlogxStruct.new
@@ -233,5 +238,7 @@ module Sys
233
238
 
234
239
  ptr.null? ? nil : lastlog
235
240
  end
241
+
242
+ private_class_method :get_lastlog_info
236
243
  end
237
244
  end
@@ -5,10 +5,9 @@ require 'sys/admin/common'
5
5
 
6
6
  module Sys
7
7
  class Admin
8
- private
9
-
10
8
  # :no-doc:
11
9
  BUF_MAX = 65536 # Absolute max buffer size for retry attempts.
10
+ private_constant :BUF_MAX
12
11
 
13
12
  # I'm making some aliases here to prevent potential conflicts
14
13
  attach_function :open_c, :open, [:string, :int], :int
@@ -40,6 +39,8 @@ module Sys
40
39
  )
41
40
  end
42
41
 
42
+ private_constant :PasswdStruct
43
+
43
44
  # struct group from /usr/include/grp.h
44
45
  class GroupStruct < FFI::Struct
45
46
  layout(
@@ -50,6 +51,8 @@ module Sys
50
51
  )
51
52
  end
52
53
 
54
+ private_constant :GroupStruct
55
+
53
56
  # I'm blending the timeval struct in directly here
54
57
  class LastlogStruct < FFI::Struct
55
58
  layout(
@@ -59,18 +62,12 @@ module Sys
59
62
  )
60
63
  end
61
64
 
62
- public
65
+ private_constant :LastlogStruct
63
66
 
64
67
  # Returns the login for the current process.
65
68
  #
66
69
  def self.get_login
67
- buf = FFI::MemoryPointer.new(:char, 256)
68
-
69
- if getlogin_r(buf, buf.size) != 0
70
- raise Error, "getlogin_r function failed: " + strerror(FFI.errno)
71
- end
72
-
73
- buf.read_string
70
+ get_user(geteuid()).name
74
71
  end
75
72
 
76
73
  # Returns a User object for the given name or uid. Raises an error
@@ -204,8 +201,6 @@ module Sys
204
201
  groups
205
202
  end
206
203
 
207
- private
208
-
209
204
  # Takes a GroupStruct and converts it to a Group object.
210
205
  def self.get_group_from_struct(grp)
211
206
  Group.new do |g|
@@ -216,6 +211,8 @@ module Sys
216
211
  end
217
212
  end
218
213
 
214
+ private_class_method :get_group_from_struct
215
+
219
216
  # Takes a UserStruct and converts it to a User object.
220
217
  def self.get_user_from_struct(pwd)
221
218
  user = User.new do |u|
@@ -242,6 +239,8 @@ module Sys
242
239
  user
243
240
  end
244
241
 
242
+ private_class_method :get_user_from_struct
243
+
245
244
  # Note: it seems that Linux, or at least Ubuntu, does not track logins
246
245
  # via GDM (Gnome Display Manager) for some reason, so this may not return
247
246
  # anything useful.
@@ -269,5 +268,7 @@ module Sys
269
268
 
270
269
  lastlog
271
270
  end
271
+
272
+ private_class_method :get_lastlog_info
272
273
  end
273
274
  end
@@ -5,10 +5,9 @@ require 'sys/admin/common'
5
5
 
6
6
  module Sys
7
7
  class Admin
8
- private
9
-
10
8
  # :no-doc:
11
9
  BUF_MAX = 65536 # Max buffer size for retry.
10
+ private_constant :BUF_MAX
12
11
 
13
12
  # I'm making some aliases here to prevent potential conflicts
14
13
  attach_function :open_c, :open, [:string, :int], :int
@@ -42,6 +41,8 @@ module Sys
42
41
  )
43
42
  end
44
43
 
44
+ private_constant :PasswdStruct
45
+
45
46
  # struct group from /usr/include/grp.h
46
47
  class GroupStruct < FFI::Struct
47
48
  layout(
@@ -52,6 +53,8 @@ module Sys
52
53
  )
53
54
  end
54
55
 
56
+ private_constant :GroupStruct
57
+
55
58
  # I'm blending the timeval struct in directly here
56
59
  class LastlogStruct < FFI::Struct
57
60
  layout(
@@ -61,7 +64,7 @@ module Sys
61
64
  )
62
65
  end
63
66
 
64
- public
67
+ private_constant :LastlogStruct
65
68
 
66
69
  # Returns the login for the current process.
67
70
  #
@@ -194,8 +197,6 @@ module Sys
194
197
  groups
195
198
  end
196
199
 
197
- private
198
-
199
200
  # Takes a GroupStruct and converts it to a Group object.
200
201
  def self.get_group_from_struct(grp)
201
202
  Group.new do |g|
@@ -206,6 +207,8 @@ module Sys
206
207
  end
207
208
  end
208
209
 
210
+ private_class_method :get_group_from_struct
211
+
209
212
  # Takes a UserStruct and converts it to a User object.
210
213
  def self.get_user_from_struct(pwd)
211
214
  user = User.new do |u|
@@ -232,6 +235,8 @@ module Sys
232
235
  user
233
236
  end
234
237
 
238
+ private_class_method :get_use_from_struct
239
+
235
240
  # The use of pread was necessary here because it's a sparse file. Note
236
241
  # also that while Solaris supports the getuserattr function, it doesn't
237
242
  # appear to store anything regarding login information.
@@ -257,5 +262,7 @@ module Sys
257
262
 
258
263
  lastlog
259
264
  end
265
+
266
+ private_class_method :get_lastlog_info
260
267
  end
261
268
  end
data/lib/sys/admin.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Sys
2
2
  class Admin
3
3
  # The version of the sys-admin library.
4
- VERSION = '1.7.5'.freeze
4
+ VERSION = '1.7.6'.freeze
5
5
  end
6
6
  end
7
7
 
@@ -9,12 +9,11 @@ module Sys
9
9
  extend FFI::Library
10
10
  ffi_lib FFI::Library::LIBC
11
11
 
12
- private
13
-
14
12
  attach_function :strerror, [:int], :string
15
13
 
16
14
  attach_function :getlogin, [], :string
17
15
  attach_function :getuid, [], :long
16
+ attach_function :geteuid, [], :long
18
17
  attach_function :getpwnam, [:string], :pointer
19
18
  attach_function :getpwuid, [:long], :pointer
20
19
  attach_function :getpwent, [], :pointer
@@ -27,12 +26,10 @@ module Sys
27
26
  attach_function :endgrent, [], :void
28
27
  attach_function :setgrent, [], :void
29
28
 
30
- private_class_method :getlogin, :getuid, :getpwnam, :getpwuid, :getpwent
31
- private_class_method :setpwent, :endpwent, :getgrgid, :getgrnam
29
+ private_class_method :getlogin, :getuid, :geteuid, :getpwnam, :getpwuid
30
+ private_class_method :getpwent, :setpwent, :endpwent, :getgrgid, :getgrnam
32
31
  private_class_method :getgrent, :endgrent, :setgrent, :strerror
33
32
 
34
- public
35
-
36
33
  # Error typically raised if any of the Sys::Admin methods fail.
37
34
  class Error < StandardError; end
38
35
 
@@ -5,8 +5,6 @@ require 'sys/admin/common'
5
5
 
6
6
  module Sys
7
7
  class Admin
8
- private
9
-
10
8
  class PasswdStruct < FFI::Struct
11
9
  layout(
12
10
  :pw_name, :string,
@@ -19,6 +17,8 @@ module Sys
19
17
  )
20
18
  end
21
19
 
20
+ private_constant :PasswdStruct
21
+
22
22
  class GroupStruct < FFI::Struct
23
23
  layout(
24
24
  :gr_name, :string,
@@ -28,7 +28,7 @@ module Sys
28
28
  )
29
29
  end
30
30
 
31
- public
31
+ private_constant :GroupStruct
32
32
 
33
33
  # Returns the login for the current process.
34
34
  #
@@ -133,8 +133,6 @@ module Sys
133
133
  groups
134
134
  end
135
135
 
136
- private
137
-
138
136
  # Takes a GroupStruct and converts it to a Group object.
139
137
  def self.get_group_from_struct(grp)
140
138
  Group.new do |g|
@@ -145,6 +143,8 @@ module Sys
145
143
  end
146
144
  end
147
145
 
146
+ private_class_method :get_group_from_struct
147
+
148
148
  # Takes a UserStruct and converts it to a User object.
149
149
  def self.get_user_from_struct(pwd)
150
150
  user = User.new do |u|
@@ -159,5 +159,7 @@ module Sys
159
159
 
160
160
  user
161
161
  end
162
+
163
+ private_class_method :get_user_from_struct
162
164
  end
163
165
  end
@@ -97,8 +97,6 @@ module Sys
97
97
  @sid_type = "unknown"
98
98
  end
99
99
  end
100
-
101
- @sid_type
102
100
  end
103
101
  end
104
102
 
@@ -314,9 +312,8 @@ module Sys
314
312
  SidTypeUnknown = 8
315
313
  SidTypeComputer = 9
316
314
 
317
- private
318
-
319
315
  HKEY = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList\\"
316
+ private_constant :HKEY
320
317
 
321
318
  # Retrieves the user's home directory. For local accounts query the
322
319
  # registry. For domain accounts use ADSI and use the HomeDirectory.
@@ -343,6 +340,8 @@ module Sys
343
340
  dir
344
341
  end
345
342
 
343
+ private_class_method :get_home_dir
344
+
346
345
  # A private method that lower cases all keys, and converts them
347
346
  # all to symbols.
348
347
  #
@@ -357,6 +356,8 @@ module Sys
357
356
  rhash
358
357
  end
359
358
 
359
+ private_class_method :munge_options
360
+
360
361
  # An internal, private method for getting a list of groups for
361
362
  # a particular user. The first member is a list of group names,
362
363
  # the second member is the primary group ID.
@@ -368,6 +369,8 @@ module Sys
368
369
  [array, adsi.PrimaryGroupId]
369
370
  end
370
371
 
372
+ private_class_method :get_groups
373
+
371
374
  # An internal, private method for getting a list of members for
372
375
  # any particular group.
373
376
  #
@@ -378,13 +381,13 @@ module Sys
378
381
  array
379
382
  end
380
383
 
384
+ private_class_method :get_members
385
+
381
386
  # Used by the get_login method
382
387
  ffi_lib :advapi32
383
388
  attach_function :GetUserNameW, [:pointer, :pointer], :bool
384
389
  private_class_method :GetUserNameW
385
390
 
386
- public
387
-
388
391
  # Creates the given +user+. If no domain option is specified,
389
392
  # then it defaults to your local host, i.e. a local account is
390
393
  # created.
data/sys-admin.gemspec CHANGED
@@ -3,7 +3,7 @@ require 'rubygems'
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'sys-admin'
6
- spec.version = '1.7.5'
6
+ spec.version = '1.7.6'
7
7
  spec.author = 'Daniel J. Berger'
8
8
  spec.license = 'Apache-2.0'
9
9
  spec.email = 'djberg96@gmail.com'
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.cert_chain = ['certs/djberg96_pub.pem']
15
15
 
16
16
  spec.add_dependency('ffi', '~> 1.1')
17
+ spec.add_dependency('win32-security', '~> 0.5') if Gem.win_platform?
17
18
 
18
19
  spec.add_development_dependency('test-unit', '>= 2.5.0')
19
20
  spec.add_development_dependency('rake')
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  class TC_Sys_Admin_All < Test::Unit::TestCase
16
16
  test "version is set to expected value" do
17
- assert_equal('1.7.5', Sys::Admin::VERSION)
17
+ assert_equal('1.7.6', Sys::Admin::VERSION)
18
18
  end
19
19
 
20
20
  test "version constant is frozen" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.5
4
+ version: 1.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -35,7 +35,7 @@ cert_chain:
35
35
  ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
36
36
  WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
37
37
  -----END CERTIFICATE-----
38
- date:
38
+ date: 2021-03-24 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ffi
@@ -90,49 +90,31 @@ executables: []
90
90
  extensions: []
91
91
  extra_rdoc_files: []
92
92
  files:
93
+ - CHANGES.md
94
+ - Gemfile
93
95
  - LICENSE
94
- - test
95
- - test/test_sys_admin_windows.rb
96
- - test/test_sys_admin.rb
97
- - test/test_sys_admin_unix.rb
96
+ - MANIFEST.md
98
97
  - README.md
99
98
  - Rakefile
100
- - MANIFEST.md
101
- - certs
102
99
  - certs/djberg96_pub.pem
103
- - examples
104
- - examples/example_users.rb
100
+ - doc/sys-admin-unix.txt
101
+ - doc/sys-admin-windows.txt
105
102
  - examples/example_groups.rb
106
- - lib
107
- - lib/sunos
108
- - lib/sunos/sys
109
- - lib/sunos/sys/admin.rb
110
- - lib/bsd
111
- - lib/bsd/sys
103
+ - examples/example_users.rb
112
104
  - lib/bsd/sys/admin.rb
105
+ - lib/darwin/sys/admin.rb
106
+ - lib/linux/sys/admin.rb
107
+ - lib/sunos/sys/admin.rb
113
108
  - lib/sys-admin.rb
114
- - lib/unix
115
- - lib/unix/sys
116
- - lib/unix/sys/admin.rb
117
- - lib/sys
118
- - lib/sys/admin
109
+ - lib/sys/admin.rb
119
110
  - lib/sys/admin/common.rb
120
111
  - lib/sys/admin/custom.rb
121
- - lib/sys/admin.rb
122
- - lib/linux
123
- - lib/linux/sys
124
- - lib/linux/sys/admin.rb
125
- - lib/darwin
126
- - lib/darwin/sys
127
- - lib/darwin/sys/admin.rb
128
- - lib/windows
129
- - lib/windows/sys
112
+ - lib/unix/sys/admin.rb
130
113
  - lib/windows/sys/admin.rb
131
- - CHANGES.md
132
- - doc
133
- - doc/sys-admin-windows.txt
134
- - doc/sys-admin-unix.txt
135
114
  - sys-admin.gemspec
115
+ - test/test_sys_admin.rb
116
+ - test/test_sys_admin_unix.rb
117
+ - test/test_sys_admin_windows.rb
136
118
  homepage: http://www.github.com/djberg96/sys-admin
137
119
  licenses:
138
120
  - Apache-2.0
@@ -158,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
140
  - !ruby/object:Gem::Version
159
141
  version: '0'
160
142
  requirements: []
161
- rubygems_version: 3.0.3
143
+ rubygems_version: 3.2.15
162
144
  signing_key:
163
145
  specification_version: 4
164
146
  summary: A unified, cross platform replacement for the "etc" library.
metadata.gz.sig CHANGED
Binary file