Sha256: 213f217f4d7e56c2348aec86e977f0fad1299c8383ac2775df5945ae554e8622

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

module EY
  module Serverside
    module DependencyManager
      class Composer < Base
        def detected?
           composer_lock? || composer_json?
        end

        def install
          if composer_available?
            shell.status "Checking for composer updates..."
            composer_selfupdate
            shell.status "Installing composer packages (composer.#{lock_or_json} detected)"
            composer_install
          else
            shell.warning "composer.#{lock_or_json} detected but composer not available."
          end
        end

        def lock_or_json
          composer_lock? ? 'lock' : 'json'
        end

        def composer_lock?
          paths.composer_lock.exist?
        end

        def composer_json?
          paths.composer_json.exist?
        end

        def composer_install
            run "composer install --no-interaction --working-dir #{paths.active_release}"
        end

        def composer_selfupdate
            run "composer self-update"
        end

        def composer_available?
          begin
            run "command -v composer > /dev/null"
            return true
          rescue EY::Serverside::RemoteFailure
            return false
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
engineyard-serverside-2.1.3 lib/engineyard-serverside/dependency_manager/composer.rb
engineyard-serverside-2.1.2 lib/engineyard-serverside/dependency_manager/composer.rb