Sha256: 243cf33224d734127798a905c29c3009730c18f7a99fd3fdcaa101a3e4bc4e31

Contents?: true

Size: 792 Bytes

Versions: 4

Compression:

Stored size: 792 Bytes

Contents

module GitWit::Actions::Etc
  class Base < Thor::Actions::EmptyDirectory

    attr_reader :base, :type, :name

    def initialize(base, type, name, config = {})
      @base, @type, @name = base, type, name
      @config = {verbose: true}.merge config
    end

    def invoke!
      invoke_with_conflict_check do
        create
      end
    end

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

    def exists?
      etc_exists?
    end

    protected
    def etc_exists?
      file = type == :user ? "passwd" : "group"
      `grep '#{name}:x:' /etc/#{file}`
      $?.success?
    end

    def say_status(status, color, msg = nil)
      msg ||= "#{type} #{name}"
      base.shell.say_status status, msg, color if config[:verbose]
    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/base.rb
git_wit-0.0.6.pre lib/git_wit/actions/etc/base.rb
git_wit-0.0.5 lib/git_wit/actions/etc/base.rb
git_wit-0.0.4.pre2 lib/git_wit/actions/etc/base.rb