2014-01-13 19:04:31 -05:00
|
|
|
#!/bin/env ruby
|
|
|
|
# Licensed to Elasticsearch under one or more contributor
|
|
|
|
# license agreements. See the NOTICE file distributed with
|
|
|
|
# this work for additional information regarding copyright
|
|
|
|
# ownership. Elasticsearch licenses this file to you under
|
|
|
|
# the Apache License, Version 2.0 (the "License"); you may
|
|
|
|
# not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing,
|
|
|
|
# software distributed under the License is distributed on
|
|
|
|
# an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
|
|
# either express or implied. See the License for the specific
|
|
|
|
# language governing permissions and limitations under the License
|
|
|
|
#
|
|
|
|
# The script extract license information out of logstash project
|
|
|
|
# First it will use license information out of gem object.
|
|
|
|
# If that is not available, it will try to print out the license file
|
|
|
|
#
|
|
|
|
require 'rubygems'
|
|
|
|
require 'bundler/setup'
|
|
|
|
require 'yaml'
|
|
|
|
|
|
|
|
# get all local installed gems
|
|
|
|
def all_installed_gems
|
|
|
|
Gem::Specification.all = nil
|
|
|
|
all = Gem::Specification
|
|
|
|
Gem::Specification.reset
|
|
|
|
all
|
|
|
|
end
|
|
|
|
|
2014-01-14 17:46:22 -05:00
|
|
|
all_installed_gems.select {|y| y.gem_dir.include?('vendor') }.sort {|v, u| v.name <=> u.name }.each do |x|
|
2014-01-13 19:04:31 -05:00
|
|
|
puts '='*80 #seperator
|
|
|
|
if(x.license) #ah gem has license information
|
2014-01-14 17:46:22 -05:00
|
|
|
puts "%s,%s,%s,%s,%s"%[x.name, x.version, x.license, x.homepage, x.email]
|
2014-01-13 19:04:31 -05:00
|
|
|
else
|
2014-01-14 17:46:22 -05:00
|
|
|
puts "%s,%s,%s,%s"%[x.name, x.version, x.homepage, x.email]
|
2014-01-13 19:04:31 -05:00
|
|
|
license_file = Dir.glob(File.join(x.gem_dir,'LICENSE*')).first #see if there is a license file
|
|
|
|
if(license_file)
|
|
|
|
file = File.open(license_file, 'r')
|
|
|
|
data = file.read
|
|
|
|
file.close
|
|
|
|
puts data
|
|
|
|
else
|
|
|
|
#no license file.. try to print some gem information
|
|
|
|
puts 'No License File'
|
|
|
|
puts x.gem_dir
|
|
|
|
puts x.files.join("\n")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|