123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/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
- all_installed_gems.select {|y| y.gem_dir.include?('vendor') }.sort {|v, u| v.name <=> u.name }.each do |x|
- puts '='*80 #separator
- if(x.license) #ah gem has license information
- puts "%s,%s,%s,%s,%s"%[x.name, x.version, x.license, x.homepage, x.email]
- else
- puts "%s,%s,%s,%s"%[x.name, x.version, x.homepage, x.email]
- 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
|