Sha256: f5b0f18b6d60ee7b3d3f8258d653b377e9b63656b5b2852df66c9840b922f0aa

Contents?: true

Size: 745 Bytes

Versions: 4

Compression:

Stored size: 745 Bytes

Contents

module GitWit::Actions::Etc
  class User < Base
    def initialize(base, name, home, config = {})
      super base, :user, name, config
      @home = home
    end

    def invoke!
      invoke_with_conflict_check do
        create
      end
      home
    end

    def revoke!
      say_status :remove, :red
      destroy if !pretend? && exists?
      home
    end

    protected
    def home
      @home || "/home/#{name}"
    end

    def create
      `sudo useradd -M -U -r -s '/bin/bash' -d '#{home}' '#{name}'`
      raise Thor::Error, "Could not create user #{name}" unless $?.success?
    end

    def destroy
      `sudo userdel -r '#{name}'`
      raise Thor::Error, "Could not destroy user #{name}" unless $?.success?
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
git_wit-0.0.6 lib/git_wit/actions/etc/user.rb
git_wit-0.0.6.pre lib/git_wit/actions/etc/user.rb
git_wit-0.0.5 lib/git_wit/actions/etc/user.rb
git_wit-0.0.4.pre2 lib/git_wit/actions/etc/user.rb