update-license-data: style fixes

This commit is contained in:
lionellloh 2020-06-25 05:10:29 +08:00
parent 3f267a8fc9
commit 37541704b8

View File

@ -7,53 +7,38 @@ require "json"
module Homebrew module Homebrew
module_function module_function
SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze
FILE_NAME = "spdx.json".freeze
NEW_FILE_NAME = "spdx_new.json".freeze
SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json"
def update_license_data_args SPDX_FOLDER_PATH = (HOMEBREW_LIBRARY_PATH/"data").freeze
Homebrew::CLI::Parser.new do FILE_NAME = "spdx.json"
usage_banner <<~EOS SPDX_DATA_URL = "https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json"
`update_license_data` <cmd>
Update SPDX license data in the Homebrew repository. def update_license_data_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`update_license_data` <cmd>
Update SPDX license data in the Homebrew repository.
EOS EOS
switch "--fail-if-changed", switch "--fail-if-changed",
description: "Return a failing status code if current license data's version is different from the upstream. This "\ description: "Return a failing status code if current license data's version is different from the upstream. This "\
"can be used to notify CI when the SPDX license data is out of date." "can be used to notify CI when the SPDX license data is out of date."
switch "--do-not-replace", max_named 0
description: "Flags out discrepancy between local and upstream versions, but does not replace" end
max_named 0
end
end
def update_license_data
update_license_data_args.parse
p args
curr_spdx_hash = File.open(SPDX_FOLDER_PATH/FILE_NAME, 'r') do |f|
JSON.parse(f.read)
end
puts "Fetching newest version of SPDX License data..."
updated_spdx_string = open(SPDX_DATA_URL) do |json|
json.read
end end
updated_spdx_hash = JSON.parse(updated_spdx_string) def update_license_data
if curr_spdx_hash["licenseListVersion"] != updated_spdx_hash["licenseListVersion"] update_license_data_args.parse
puts "Fetching newest version of SPDX License data..."
puts "Current version is #{curr_spdx_hash["licenseListVersion"]} but newest version is #{updated_spdx_hash["licenseListVersion"]}" open(SPDX_DATA_URL) do |json|
unless args.do_not_replace?
puts "Updating existing licences data file..."
File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file| File.open(SPDX_FOLDER_PATH/FILE_NAME, "wb") do |file|
file.write(updated_spdx_string) file.write(json.read)
end end
end end
Homebrew.failed = !!args.fail_if_outdated
else if args.fail_if_changed?
puts "Current version of license data is updated. No change required" Homebrew.failed = true
system("git diff --stat --exit-code #{FILE_NAME}")
end
end end
end end
end