1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'jar_dependencies'
require 'optparse'
options = {}
optparse = OptionParser.new do |opts|
opts.banner = "Usage: #{File.basename(__FILE__)} [options]"
opts.separator ''
opts.separator 'Options:'
opts.separator ''
opts.on('-v', '--verbose', 'Output more information') do |t|
options[:verbose] = t
end
opts.on('-d', '--debug', 'Output debug information') do |t|
options[:debug] = t
end
opts.on('-f', '--force', 'Force creation of Jars.lock') do |t|
options[:force] = t
end
opts.on('-t', '--tree', 'Show dependency tree') do |t|
options[:tree] = t
end
opts.on('-u', '--update JAR_COORDINATE',
'Resolves given dependency and use latest version. ' \
'JAR_COORDINATE is either artifact_id or group_id:artifact_id') do |u|
options[:update] = u
end
opts.on('--vendor-dir DIRECTORY', 'Vendor directory where to copy the installed jars.' \
'add this directory to $LOAD_PATH or set JARS_HOME respectively.') do |dir|
options[:vendor_dir] = dir
end
opts.on('-h', '--help', 'Display this screen') do
puts opts
exit
end
opts.separator ''
opts.separator 'THIS IS A EXPERIMETAL FEATURE !!!'
opts.separator ''
opts.separator '* load jars "Jars.lock" from current working directory: `Jars.require_jars_lock!`'
opts.separator '* classpath features: see `Jars::Classpath'
end
optparse.parse!
Jars.lock_down(debug: options.delete(:debug), verbose: options.delete(:verbose), **options)
|