@@ -55,6 +55,27 @@ function distribution_version.parse_distribution (name)
5555end
5656
5757
58+ --- Converts user-input version format to Foojay API format
59+ --- Examples: "26.ea.1" -> "26-ea+1", "26.ea" -> "26-ea", "25.0.3" -> "25.0.3"
60+ --- @param version string User-input version
61+ --- @return string Converted version for Foojay API
62+ function distribution_version .convert_version_for_api (version )
63+ -- Handle EA version format: "X.ea.Y" -> "X-ea+Y"
64+ local ea_version , ea_build = version :match (" ^(%d+)%.ea%.(%d+)$" )
65+ if ea_version and ea_build then
66+ return ea_version .. " -ea+" .. ea_build
67+ end
68+
69+ -- Handle EA version format without build number: "X.ea" -> "X-ea"
70+ local ea_version_only = version :match (" ^(%d+)%.ea$" )
71+ if ea_version_only then
72+ return ea_version_only .. " -ea"
73+ end
74+
75+ -- Return as-is for normal versions
76+ return version
77+ end
78+
5879function distribution_version .parse_version (arg )
5980 local version_parts = strings .split (arg , " -" )
6081 local version
@@ -94,6 +115,9 @@ function distribution_version.parse_version (arg)
94115 end
95116 end
96117
118+ -- Convert version format for Foojay API
119+ version = distribution_version .convert_version_for_api (version )
120+
97121 return {
98122 version = version ,
99123 distribution = distribution ,
0 commit comments