mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
56 lines
1.2 KiB
Ruby
Executable File
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?
|