Allow specifying a custom forge scheme
Users may wish to use the forge macros with self-hosted forges. Instead of having to hardcode every single forge mapping, this allows users to choose a forge scheme themselves.
This commit is contained in:
parent
11dd33c789
commit
6bd567d2ea
2 changed files with 47 additions and 6 deletions
|
|
@ -63,11 +63,11 @@ local function checkforgeurl(url, id, silent)
|
|||
end
|
||||
|
||||
-- Check if an url matches a known forge
|
||||
local function idforge(url, silent)
|
||||
local function idforge(url, silent, forge_override)
|
||||
local forgeurl = nil
|
||||
local forge = nil
|
||||
if (url ~= "") then
|
||||
forge = string.match(url, "^[^:]+://([^/]+)/")
|
||||
forge = forge_override or string.match(url, "^[^:]+://([^/]+)/")
|
||||
if (forge == nil) then
|
||||
if not silent then
|
||||
rpm.expand("%{error:URLs must include a protocol such as https:// and a path starting with / !}")
|
||||
|
|
@ -109,7 +109,7 @@ local function meta(suffix, verbose, informative, silent)
|
|||
"archivename", "archiveext", "archiveurl",
|
||||
"topdir", "extractdir", "repo", "owner", "namespace",
|
||||
"scm", "tag", "commit", "shortcommit", "branch", "version",
|
||||
"date", "distprefix"}, verbose)
|
||||
"date", "distprefix", "forge"}, verbose)
|
||||
end
|
||||
local variables = {
|
||||
default = {
|
||||
|
|
@ -198,9 +198,10 @@ local function meta(suffix, verbose, informative, silent)
|
|||
forgeurl = expliciturl
|
||||
end
|
||||
local forge
|
||||
forgeurl, forge = idforge(forgeurl, silent)
|
||||
forgeurl, forge = idforge(forgeurl, silent, macros["forge" .. suffix])
|
||||
if (forge ~= nil) then
|
||||
fedora.explicitset("forgeurl" .. suffix, forgeurl, verbose)
|
||||
fedora.explicitset("forge" .. suffix, forge, verbose)
|
||||
-- Custom processing of quirky forges that can not be handled with simple variables
|
||||
if (forge == "github") then
|
||||
-- Workaround the way GitHub injects "v"s before some version strings (but not all!)
|
||||
|
|
@ -319,7 +320,8 @@ local function meta(suffix, verbose, informative, silent)
|
|||
fedora.zalias({"forgeurl", "forgesource", "forgesetupargs",
|
||||
"archivename", "archiveext", "archiveurl",
|
||||
"topdir", "extractdir", "repo", "owner", "namespace",
|
||||
"scm", "shortcommit", "distprefix", "_forgeversionsuffix"}, verbose)
|
||||
"scm", "shortcommit", "distprefix", "_forgeversionsuffix",
|
||||
"forge"}, verbose)
|
||||
end
|
||||
-- Final spec variable summary if the macro was called with -i
|
||||
if informative then
|
||||
|
|
@ -328,7 +330,8 @@ local function meta(suffix, verbose, informative, silent)
|
|||
"archivename", "archiveext", "archiveurl",
|
||||
"topdir", "extractdir", "repo", "owner", "namespace",
|
||||
"scm", "tag", "commit", "shortcommit", "branch", "version",
|
||||
"date", "distprefix", "_forgeversionsuffix"}, suffix)
|
||||
"date", "distprefix", "_forgeversionsuffix",
|
||||
"forge"}, suffix)
|
||||
fedora.echovars({"dist"},"")
|
||||
rpm.expand("%{echo: (snapshot date is either manually supplied or computed once %%{_sourcedir}/%%{archivename" .. suffix .. "}.%%{archiveext" .. suffix .. "} is available)}")
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ _anchors:
|
|||
- extractdir
|
||||
- repo
|
||||
- scm
|
||||
- forge
|
||||
zeroidx_commit: &zeroidx_commit
|
||||
- commit
|
||||
- distprefix
|
||||
|
|
@ -30,6 +31,7 @@ _anchors:
|
|||
- extractdir
|
||||
- repo
|
||||
- scm
|
||||
- forge
|
||||
|
||||
cases:
|
||||
- id: smoke
|
||||
|
|
@ -69,6 +71,7 @@ cases:
|
|||
forgesetup: "SETUP -q -n ansible-%{version}\n"
|
||||
"forgesetup -z0": "%forgesetup"
|
||||
"forgesetup -a": "%forgesetup"
|
||||
forge: github
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -92,6 +95,7 @@ cases:
|
|||
extractdir: "community.general-%{version}"
|
||||
repo: community.general
|
||||
scm: git
|
||||
forge: github
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -112,6 +116,7 @@ cases:
|
|||
repo: ansible
|
||||
scm: git
|
||||
distprefix: ".git520bb66"
|
||||
forge: github
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
# Different semantics are used when a date is specified
|
||||
|
|
@ -133,6 +138,7 @@ cases:
|
|||
scm: git
|
||||
distprefix: ".20230813git520bb66"
|
||||
_forgeversionsuffix0: ".20230813git520bb66"
|
||||
forge: github
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
- id: gitlab_forgesource_simple
|
||||
|
|
@ -150,6 +156,7 @@ cases:
|
|||
extractdir: "fdroidclient-%{version}"
|
||||
repo: fdroidclient
|
||||
scm: git
|
||||
forge: gitlab
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -170,6 +177,7 @@ cases:
|
|||
scm: git
|
||||
distprefix: ".git9530f51"
|
||||
_forgeversionsuffix: ".git9530f51"
|
||||
forge: gitlab
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
- id: test_gitea_simple
|
||||
|
|
@ -190,6 +198,7 @@ cases:
|
|||
extractdir: "%{name}"
|
||||
repo: "%{name}"
|
||||
scm: git
|
||||
forge: gitea.com
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -211,6 +220,7 @@ cases:
|
|||
scm: git
|
||||
distprefix: ".gitf5dbac2"
|
||||
_forgeversionsuffix: ".gitf5dbac2"
|
||||
forge: gitea.com
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
- id: test_sourcehut_simple
|
||||
|
|
@ -229,6 +239,7 @@ cases:
|
|||
extractdir: "%{name}-%{version}"
|
||||
repo: "%{name}"
|
||||
scm: git
|
||||
forge: sourcehut
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -251,6 +262,7 @@ cases:
|
|||
scm: git
|
||||
distprefix: ".gite124442"
|
||||
_forgeversionsuffix: ".gite124442"
|
||||
forge: sourcehut
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
- id: sourcehut_v_prefix
|
||||
|
|
@ -275,6 +287,7 @@ cases:
|
|||
extractdir: "fedrq-v%{version}"
|
||||
repo: fedrq
|
||||
scm: git
|
||||
forge: sourcehut
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -382,6 +395,7 @@ cases:
|
|||
scm: git
|
||||
distprefix: ".git9479d77"
|
||||
_forgeversionsuffix: ".git9479d77"
|
||||
forge: bitbucket.org
|
||||
zero_indexed: *zeroidx_commit
|
||||
|
||||
- id: multisource_all
|
||||
|
|
@ -413,6 +427,7 @@ cases:
|
|||
"forgesetup -a": |
|
||||
SETUP -q %{forgesetupargs}
|
||||
SETUP -q %{forgesetupargs1}
|
||||
forge: github
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
@ -477,3 +492,26 @@ cases:
|
|||
"forgeversion -p -z12": "1.0.0"
|
||||
# override %version with -b
|
||||
"forgeversion -b 1.1.0": "1.1.0^abcd"
|
||||
|
||||
- id: custom_forge_gitea
|
||||
defines:
|
||||
- version: "5.11.1"
|
||||
forgeurl: "https://opendev.org/openstack/pbr"
|
||||
forge: "gitea.com"
|
||||
- version0: "5.11.1"
|
||||
forgeurl0: "https://opendev.org/openstack/pbr"
|
||||
forge0: "gitea.com"
|
||||
expected:
|
||||
forgesource: "https://opendev.org/openstack/pbr/archive/%{version}.tar.gz"
|
||||
forgesetupargs: "-n pbr"
|
||||
archivename: "%{version}"
|
||||
archiveext: "tar.gz"
|
||||
archiveurl: "%{forgesource}"
|
||||
topdir: "pbr"
|
||||
extractdir: "pbr"
|
||||
repo: "pbr"
|
||||
scm: git
|
||||
forge: gitea.com
|
||||
zero_indexed: *zeroidx
|
||||
expected_undefined:
|
||||
- distprefix
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue