Files
linguist/script/licensed
2016-09-07 04:26:45 +10:00

56 lines
1.2 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# TODO: push these changes to licensor gem
require "bundler/setup"
require "licensed/cli"
require "optparse"
module Licensed
module Source
class Filesystem
attr_reader :type
def initialize(glob, type: "directory")
@glob = glob
@type = type
end
def enabled?
!Dir.glob(@glob).empty?
end
def dependencies
Dir.glob(@glob).map do |directory|
puts "caching #{directory}"
Licensed::Dependency.new(directory, {
"type" => type,
"name" => File.basename(directory)
})
end
end
end
end
end
module_path = nil
OptionParser.new do |opts|
opts.on("-mPATH", "--module=PATH", "Cache license file for specific grammar") do |p|
module_path = p
end
end.parse!
source = Licensed::Source::Filesystem.new(module_path || "vendor/grammars/*/", type: "grammar")
config = Licensed::Configuration.new
config.sources << source
command = if ARGV[0] == "verify"
Licensed::Command::Verify.new(config)
else
Licensed::Command::Cache.new(config)
end
command.run
`git checkout -- vendor/licenses/grammar/` if module_path
exit command.success?