Sha256: b84fab8f2a484519afe4448bfdc48230803e65ba2c26487a60c65a198a54309d

Contents?: true

Size: 1.26 KB

Versions: 90

Compression:

Stored size: 1.26 KB

Contents

require 'itamae-mitsurin'

module ItamaeMitsurin
  module Resource
    class Package < Base
      define_attribute :action, default: :install
      define_attribute :name, type: String, default_name: true
      define_attribute :version, type: String
      define_attribute :options, type: String

      def pre_action
        case @current_action
        when :install
          attributes.installed = true
        when :remove
          attributes.installed = false
        end
      end

      def set_current_attributes
        current.installed = run_specinfra(:check_package_is_installed, attributes.name)

        if current.installed
          current.version = run_specinfra(:get_package_version, attributes.name).stdout.strip
        end
      end

      def action_install(action_options)
        unless run_specinfra(:check_package_is_installed, attributes.name, attributes.version)
          run_specinfra(:install_package, attributes.name, attributes.version, attributes.options)
          updated!
        end
      end

      def action_remove(action_options)
        if run_specinfra(:check_package_is_installed, attributes.name, nil)
          run_specinfra(:remove_package, attributes.name, attributes.options)
          updated!
        end
      end
    end
  end
end

Version data entries

90 entries across 47 versions & 1 rubygems

Version Path
itamae-mitsurin-1.0.3 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-1.0.2 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-1.0.1 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-1.0.0 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.50 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.50 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.49 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.49 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.48 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.48 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.47 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.47 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.46 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.46 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.45 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.45 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.44 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.44 test/test_itamae-mitsurin/resource/test_package.rb
itamae-mitsurin-0.43 lib/itamae-mitsurin/resource/package.rb
itamae-mitsurin-0.43 test/test_itamae-mitsurin/resource/test_package.rb