specinfra 2.82.8 → 2.82.9

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
  SHA1:
3
- metadata.gz: 919413029a0bf8f822b8b4613b8fcf969e8ab8e1
4
- data.tar.gz: 5edeb32cf48c944b0dddc080f7dfd68c444d161a
3
+ metadata.gz: 12be641da0b979fbb7e114c6a6b40987d41a0e30
4
+ data.tar.gz: 23542c373ee045664d8612268396ed21c7278a1d
5
5
  SHA512:
6
- metadata.gz: 026344c6e79af03b377ebdb5522c5e47edf4b8490d619ae4d2f47d0aa53913a105f7febe9729e0e3ff0c04610d8425db0208f6c9c8ff21bcf36b6c75ba73fad2
7
- data.tar.gz: 03ab9944c6c7b56f9b243670a88f7c5a162785296be6f2de263b1d9e50797fbccedcba8e0ede60c27d311ecf76c0f2c995895c1fdfc0e25840fe1d556cf5a153
6
+ metadata.gz: f7ba4a22c7825dbfd0c17734f2d69edf8e422903ec61e2d2318e6fe0a2dfcdcb81d8580aa4ed48535886888b2840897c5eae1ace0dc3e75b43b0569f492abeb6
7
+ data.tar.gz: e6599750de210765cc448f39fd36c3ebe7287a44625c375fc61fac01b95d01aa3180697855638cadb3eebdc4b2be752ad942128bb1d3a5306019de7981c64289
@@ -174,6 +174,7 @@ require 'specinfra/command/darwin/base/package'
174
174
  require 'specinfra/command/darwin/base/port'
175
175
  require 'specinfra/command/darwin/base/process'
176
176
  require 'specinfra/command/darwin/base/user'
177
+ require 'specinfra/command/darwin/base/group'
177
178
 
178
179
  # Debian (inherit Linux)
179
180
  require 'specinfra/command/debian'
@@ -0,0 +1,22 @@
1
+ class Specinfra::Command::Darwin::Base::Group < Specinfra::Command::Base::Group
2
+ class << self
3
+
4
+ def get_gid(group)
5
+ "dscl . -read /Groups/#{escape(group)} PrimaryGroupID | awk '{ print $2 }'"
6
+ end
7
+
8
+ def update_gid(group, gid)
9
+ "dscl . -create /Groups/#{escape(group)} PrimaryGroupID #{escape(gid)}"
10
+ end
11
+ def add(group, options)
12
+ group_name = escape(group)
13
+
14
+ record_path = "/Groups/#{group_name}"
15
+ dscl_create = "dscl . -create #{record_path}"
16
+ command = [dscl_create]
17
+ command << "#{dscl_create} PrimaryGroupID #{escape(options[:gid])}" if options[:gid]
18
+ command << "#{dscl_create} RecordName #{escape(options[:groupname])}" if options[:groupname]
19
+ command.join(' && ')
20
+ end
21
+ end
22
+ end
@@ -11,5 +11,43 @@ class Specinfra::Command::Darwin::Base::User < Specinfra::Command::Base::User
11
11
  def get_home_directory(user)
12
12
  "finger #{escape(user)} | grep -E '^Directory' | awk '{ print $2 }'"
13
13
  end
14
+
15
+ def update_home_directory(user, directory)
16
+ "dscl . -create /Users/#{escape(user)} NFSHomeDirectory #{escape(directory)}"
17
+ end
18
+
19
+ def update_login_shell(user, shell)
20
+ "dscl . -create /Users/#{escape(user)} UserShell #{escape(shell)}"
21
+ end
22
+
23
+ def update_encrypted_password(user, password)
24
+ "dscl . passwd /Users/#{escape(user)} #{escape(password)}"
25
+ end
26
+
27
+ def update_gid(user, gid)
28
+ "dscl . -create /Users/#{escape(user)} PrimaryGroupID #{escape(gid)}"
29
+ end
30
+
31
+ def add(user, options)
32
+ user_name = escape(user)
33
+ record_path = "/Users/#{user_name}"
34
+ dscl_create = "dscl . -create #{record_path}"
35
+
36
+ command = [dscl_create]
37
+ command << "#{dscl_create} UserShell #{escape(options[:shell])}" if options[:shell]
38
+ command << "#{dscl_create} UniqueID #{escape(options[:uid])}" if options[:uid]
39
+ command << "#{dscl_create} PrimaryGroupID #{escape(options[:gid])}" if options[:gid]
40
+
41
+ home_dir = if options[:home_directory]
42
+ escape(options[:home_directory])
43
+ else
44
+ record_path
45
+ end
46
+ command << "#{dscl_create} NFSHomeDirectory #{home_dir}"
47
+
48
+ command << "dscl . passwd #{record_path} #{escape(options[:password])}" if options[:password]
49
+ command << "createhomedir -b -u #{user_name}" if options[:create_home]
50
+ command.join(' && ')
51
+ end
14
52
  end
15
53
  end
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.82.8"
2
+ VERSION = "2.82.9"
3
3
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, { :family => 'darwin' }
4
+
5
+ describe get_command(:get_group_gid, 'foo') do
6
+ it { should eq "dscl . -read /Groups/foo PrimaryGroupID | awk '{ print $2 }'" }
7
+ end
8
+
9
+ describe get_command(:update_group_gid, 'foo', 1234) do
10
+ it { should eq "dscl . -create /Groups/foo PrimaryGroupID 1234" }
11
+ end
12
+
13
+ describe get_command(:add_group, 'foo', :gid => 1234, :groupname => 'bar') do
14
+ it { should eq 'dscl . -create /Groups/foo && dscl . -create /Groups/foo PrimaryGroupID 1234 && dscl . -create /Groups/foo RecordName bar' }
15
+ end
@@ -13,3 +13,23 @@ end
13
13
  describe get_command(:get_user_home_directory, 'foo') do
14
14
  it { should eq "finger foo | grep -E '^Directory' | awk '{ print $2 }'" }
15
15
  end
16
+
17
+ describe get_command(:update_user_home_directory, 'user', 'dir') do
18
+ it { should eq "dscl . -create /Users/user NFSHomeDirectory dir" }
19
+ end
20
+
21
+ describe get_command(:update_user_login_shell, 'user', '/bin/bash') do
22
+ it { should eq "dscl . -create /Users/user UserShell /bin/bash" }
23
+ end
24
+
25
+ describe get_command(:update_user_encrypted_password, 'user', 'pass') do
26
+ it { should eq "dscl . passwd /Users/user pass" }
27
+ end
28
+
29
+ describe get_command(:update_user_gid, 'user', '100') do
30
+ it { should eq "dscl . -create /Users/user PrimaryGroupID 100" }
31
+ end
32
+
33
+ describe get_command(:add_user, 'foo', :home_directory => '/Users/foo', :password => '$6$foo/bar', :shell => '/bin/zsh', :create_home => true) do
34
+ it { should eq 'dscl . -create /Users/foo && dscl . -create /Users/foo UserShell /bin/zsh && dscl . -create /Users/foo NFSHomeDirectory /Users/foo && dscl . passwd /Users/foo \$6\$foo/bar && createhomedir -b -u foo' }
35
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specinfra
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.82.8
4
+ version: 2.82.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-22 00:00:00.000000000 Z
11
+ date: 2020-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-scp
@@ -217,6 +217,7 @@ files:
217
217
  - lib/specinfra/command/darwin.rb
218
218
  - lib/specinfra/command/darwin/base.rb
219
219
  - lib/specinfra/command/darwin/base/file.rb
220
+ - lib/specinfra/command/darwin/base/group.rb
220
221
  - lib/specinfra/command/darwin/base/host.rb
221
222
  - lib/specinfra/command/darwin/base/interface.rb
222
223
  - lib/specinfra/command/darwin/base/inventory.rb
@@ -521,6 +522,7 @@ files:
521
522
  - spec/command/cumulus/ppa_cumuluslinux_spec.rb
522
523
  - spec/command/cumulus/ppa_cumulusnetworks_spec.rb
523
524
  - spec/command/darwin/file_spec.rb
525
+ - spec/command/darwin/group_spec.rb
524
526
  - spec/command/darwin/host_spec.rb
525
527
  - spec/command/darwin/interface_spec.rb
526
528
  - spec/command/darwin/port_spec.rb
@@ -658,6 +660,7 @@ test_files:
658
660
  - spec/command/cumulus/ppa_cumuluslinux_spec.rb
659
661
  - spec/command/cumulus/ppa_cumulusnetworks_spec.rb
660
662
  - spec/command/darwin/file_spec.rb
663
+ - spec/command/darwin/group_spec.rb
661
664
  - spec/command/darwin/host_spec.rb
662
665
  - spec/command/darwin/interface_spec.rb
663
666
  - spec/command/darwin/port_spec.rb