logstash/tools/paquet/paquet.gemspec
Pier-Hugues Pellerin fdda39964d Add bin/logstash-plugin prepare-offline-pack command
This new command replace the old workflow of `pack`, `unpack` and the `install --local`, and wrap all the logic into one uniform way of installing plugins.
The work is based on the flow developed for installing an x-pack inside Logstash, when you call prepare-offline-pack, the specified plugins and their dependencies will be packaged in a zip.
And this zip can be installed with the same flow as the pack.

Definition:

Source Logstash: Where you run the prepare-offline-pack.
Target Logstash: Where you install the offline package.

PROS:
- If you install a .gem in the source logstash, the .gem and his dependencies will be bundled.
- The install flow doesn't need to have access to the internet.
- Nothing special need to be setup in the target logstash environment.

CONS:
- The is one minor drawback, the plugins need to have their JARS bundled with them for this flow to work, this is currently the case for all the official plugins.
- The source Logstash need to have access to the internet when you install plugins before packaging them.

Usage examples:
bin/logstash-plugin prepare-offline-pack logstash-input-beats
bin/logstash-plugin prepare-offline-pack logstash-filter-jdbc logstash-input-beats
bin/logstash-plugin prepare-offline-pack logstash-filter-*
bin/logstash-plugin prepare-offline-pack logstash-filter-* logstash-input-beats

How to install:
bin/logstash-plugin install file:///tmp/logstash-offline-plugins-XXXX.zip

Fixes #6404
2017-01-03 13:59:49 -05:00

28 lines
1,011 B
Ruby

# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'paquet/version'
Gem::Specification.new do |spec|
spec.name = "paquet"
spec.version = Paquet::VERSION
spec.authors = ["Elastic"]
spec.email = ["info@elastic.co"]
spec.license = "Apache License (2.0)"
spec.summary = %q{Rake helpers to create a uber gem}
spec.description = %q{This gem add a few rake tasks to create a uber gems that will be shipped as a zip}
spec.homepage = "https://github.com/elastic/logstash"
spec.files = Dir.glob(File.join(File.dirname(__FILE__), "lib", "**", "*.rb"))
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
spec.add_development_dependency "rspec"
spec.add_development_dependency "pry"
spec.add_development_dependency "webmock", "~> 2.2.0"
spec.add_development_dependency "stud"
end