|
|
|
@ -58,6 +58,41 @@ local function get_github_data(reponame) |
|
|
|
|
return {data = data, host = host} |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
local function get_license_spdx_id(key) |
|
|
|
|
local licenses = { |
|
|
|
|
["apache-2.0"] = "Apache-2.0", |
|
|
|
|
["lgpl-2.0"] = "LGPL-2.0", |
|
|
|
|
["lgpl-2.1"] = "LGPL-2.1", |
|
|
|
|
["agpl-3.0"] = "AGPL-3.0", |
|
|
|
|
["bsd-2-clause"] = "BSD-2-Clause", |
|
|
|
|
["bsd-3-clause"] = "BSD-3-Clause", |
|
|
|
|
["bsl-1.0"] = "BSL-1.0", |
|
|
|
|
["cc0-1.0"] = "CC0-1.0", |
|
|
|
|
["epl-2.0"] = "EPL-2.0", |
|
|
|
|
["gpl-2.0"] = "GPL-2.0", |
|
|
|
|
["gpl-3.0"] = "GPL-3.0", |
|
|
|
|
["mpl-2.0"] = "MPL-2.0", |
|
|
|
|
zlib = "zlib", |
|
|
|
|
mit = "MIT", |
|
|
|
|
} |
|
|
|
|
local license = licenses[key] |
|
|
|
|
if license then |
|
|
|
|
return license |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
local url = string.format("https://api.github.com/licenses/%s", key) |
|
|
|
|
local tmpfile = os.tmpfile({ramdisk = false}) |
|
|
|
|
local ok = try { function () http.download(url, tmpfile); return true end } |
|
|
|
|
if not ok then |
|
|
|
|
os.tryrm(tmpfile) |
|
|
|
|
return nil |
|
|
|
|
end |
|
|
|
|
local license_detail = json.loadfile(tmpfile) |
|
|
|
|
license = license_detail["spdx_id"] |
|
|
|
|
os.tryrm(tmpfile) |
|
|
|
|
return license |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
function generate_package(reponame, get_data) |
|
|
|
|
local repo_data = get_data(reponame) |
|
|
|
|
local data = repo_data.data |
|
|
|
@ -80,14 +115,7 @@ function generate_package(reponame, get_data) |
|
|
|
|
|
|
|
|
|
-- define license if available |
|
|
|
|
if type(data.licenseInfo) == "table" and data.licenseInfo.key then |
|
|
|
|
local licenses = { |
|
|
|
|
["apache-2.0"] = "Apache-2.0", |
|
|
|
|
["lgpl-2.0"] = "LGPL-2.0", |
|
|
|
|
["lgpl-2.1"] = "LGPL-2.1", |
|
|
|
|
zlib = "zlib", |
|
|
|
|
mit = "MIT", |
|
|
|
|
} |
|
|
|
|
local license = licenses[data.licenseInfo.key] |
|
|
|
|
local license = get_license_spdx_id(data.licenseInfo.key) |
|
|
|
|
if license then |
|
|
|
|
file:print(' set_license("%s")', license) |
|
|
|
|
end |
|
|
|
|