Sha256: 492075a9b3f63abeac0879c919d9cdd82519b9d4c59f5b6b42206600986d27a6

Contents?: true

Size: 1.41 KB

Versions: 11

Compression:

Stored size: 1.41 KB

Contents

module DanarchyDeploy
  class Groups
    def self.new(deployment, options)
      puts "\n" + self.name
      (groupadd_result, groupdel_result) = nil

      deployment[:groups].each do |group|
        puts " > Checking if group '#{group[:groupname]}' already exists."
        groupcheck_result = groupcheck(group, options)

        if groupcheck_result[:stdout]
          puts "   - Group: #{group[:groupname]} already exists!"
        else
          puts "   |+ Adding group: #{group[:groupname]}"
          groupadd_result = groupadd(group, options)
        end
      end

      # [groupadd_result, groupdel_result]
      deployment
    end

    private
    def self.groupadd(group, options)
      groupadd_cmd  = "groupadd #{group[:groupname]} "
      groupadd_cmd += "--gid #{group[:gid]} " if group[:gid]
      groupadd_cmd += "--system " if group[:system]
      if options[:pretend]
        puts "\tFake run: #{groupadd_cmd}"
      else
        DanarchyDeploy::Helpers.run_command(groupadd_cmd, options)
      end
    end

    def self.groupdel(group, options)
      groupdel_cmd = "groupdel #{group[:groupname]}"
      if options[:pretend]
        puts "\tFake run: #{groupdel_cmd}"
      else
        DanarchyDeploy::Helpers.run_command(groupdel_cmd, options)
      end
    end

    def self.groupcheck(group, options)
      DanarchyDeploy::Helpers.run_command("/usr/bin/getent group #{group[:groupname]}", options)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
danarchy_deploy-0.2.5 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.2.4 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.2.3 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.2.2 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.2.1 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.5 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.4 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.3 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.2 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.1 lib/danarchy_deploy/groups.rb
danarchy_deploy-0.1.0 lib/danarchy_deploy/groups.rb