Sha256: 0c0a430f6d96b15bd68f07cacda5292fda2a12f7a08289c684396b4fd4f81e0c

Contents?: true

Size: 1.61 KB

Versions: 34

Compression:

Stored size: 1.61 KB

Contents

module Sprinkle
  module Installers
    # = Apt Package Installer
    #
    # The Apt package installer uses the +apt-get+ command to install
    # packages. The apt installer has only one option which can be
    # modified which is the +dependencies_only+ option. When this is
    # set to true, the installer uses +build-dep+ instead of +install+
    # to only build the dependencies.
    # 
    # == Example Usage
    #
    # First, a simple installation of the magic_beans package:
    #
    #   package :magic_beans do
    #     description "Beans beans they're good for your heart..."
    #     apt 'magic_beans_package'
    #   end
    #
    # Second, only build the magic_beans dependencies:
    #
    #   package :magic_beans_depends do
    #     apt 'magic_beans_package' { dependencies_only true }
    #   end
    #
    # As you can see, setting options is as simple as creating a
    # block and calling the option as a method with the value as 
    # its parameter.
    class Apt < Installer
      attr_accessor :packages #:nodoc:

      def initialize(parent, *packages, &block) #:nodoc:
        packages.flatten!
        
        options = { :dependencies_only => false }
        options.update(packages.pop) if packages.last.is_a?(Hash)
        
        super parent, options, &block
        
        @packages = packages
      end

      protected

        def install_commands #:nodoc:
          command = @options[:dependencies_only] ? 'build-dep' : 'install'
          "DEBCONF_TERSE='yes' DEBIAN_PRIORITY='critical' DEBIAN_FRONTEND=noninteractive apt-get -qyu #{command} #{@packages.join(' ')}"
        end

    end
  end
end

Version data entries

34 entries across 34 versions & 8 rubygems

Version Path
crafterm-sprinkle-0.1.6 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.1.7 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.1.8 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.1.9 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.2.0 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.2.1 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.2.2 lib/sprinkle/installers/apt.rb
crafterm-sprinkle-0.2.3 lib/sprinkle/installers/apt.rb
jemmyw-sprinkle-0.2.3 lib/sprinkle/installers/apt.rb
jemmyw-sprinkle-0.2.4 lib/sprinkle/installers/apt.rb
jsierles-sprinkle-0.1.9 lib/sprinkle/installers/apt.rb
justsee-sprinkle-0.2.4 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.1 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.10 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.11 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.13 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.14 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.2 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.3 lib/sprinkle/installers/apt.rb
lachlan-sprinkle-0.0.4 lib/sprinkle/installers/apt.rb