Update for new builds
This commit is contained in:
110
Redirects.cs
110
Redirects.cs
@@ -11,31 +11,27 @@ class Redirect
|
|||||||
|
|
||||||
// TessesFramework
|
// TessesFramework
|
||||||
{"tessesframework",Std("https://git.tesses.org/tesses50/tessesframework")},
|
{"tessesframework",Std("https://git.tesses.org/tesses50/tessesframework")},
|
||||||
{"tf-tools-aarch64-linux",TF("tessesframework-tools-aarch64-linux-musl.tar.gz")},
|
{"tf-tools-win32",TF("tessesframework-tools-x86-windows-gnu.zip")},
|
||||||
{"tf-tools-aarch64-macos",TF("tessesframework-tools-aarch64-macos-none.tar.gz")},
|
{"tf-tools-win64",TF("tessesframework-tools-x86_64-windows-gnu.zip")},
|
||||||
{"tf-tools-aarch64-windows",TF("tessesframework-tools-aarch64-windows-gnu.zip")},
|
{"tf-linux-i386",TFR("tessesframework-@TAG@-386.tar.gz")},
|
||||||
{"tf-tools-arm-linux",TF("tessesframework-tools-arm-linux-musleabi.tar.gz")},
|
{"tf-linux-amd64",TFR("tessesframework-@TAG@-amd64.tar.gz")},
|
||||||
{"tf-tools-powerpc-linux",TF("tessesframework-tools-powerpc-linux-musleabihf.tar.gz")},
|
{"tf-linux-arm64",TFR("tessesframework-@TAG@-arm64.tar.gz")},
|
||||||
{"tf-tools-riscv64-linux",TF("tessesframework-tools-riscv64-linux-musl.tar.gz")},
|
{"tf-linux-arm7",TFR("tessesframework-@TAG@-arm7.tar.gz")},
|
||||||
{"tf-tools-x86-linux",TF("tessesframework-tools-x86-linux-musl.tar.gz")},
|
{"tf-linux-powerpc",TFR("tessesframework-@TAG@-powerpc.tar.gz")},
|
||||||
{"tf-tools-x86-windows",TF("tessesframework-tools-x86-windows-gnu.zip")},
|
{"tf-linux-riscv64",TFR("tessesframework-@TAG@-riscv64.tar.gz")},
|
||||||
{"tf-tools-x86_64-linux",TF("tessesframework-tools-x86_64-linux-musl.tar.gz")},
|
|
||||||
{"tf-tools-x86_64-macos",TF("tessesframework-tools-x86_64-macos-none.tar.gz")},
|
// CrossLang
|
||||||
{"tf-tools-x86_64-windows",TF("tessesframework-tools-x86_64-windows-gnu.zip")},
|
{"crosslang",Std("https://git.tesses.org/tesses50/crosslang")},
|
||||||
{"cl-slim-aarch64-linux-musl", CL("crosslang-slim-aarch64-linux-musl")},
|
{"cl-portable-win32",CL("crosslang-win32-portable.exe")},
|
||||||
{"cl-slim-aarch64-macos-none", CL("crosslang-slim-aarch64-macos-none")},
|
{"cl-portable-win64",CL("crosslang-win64-portable.exe")},
|
||||||
{"cl-slim-aarch64-windows-gnu", CL("crosslang-slim-aarch64-windows-gnu.exe")},
|
{"cl-setup-win32",CL("crosslang-win32-setup.exe")},
|
||||||
{"cl-slim-arm-linux-musleabi", CL("crosslang-slim-arm-linux-musleabi")},
|
{"cl-setup-win64",CL("crosslang-win64-setup.exe")},
|
||||||
{"cl-slim-powerpc-linux-musleabihf", CL("crosslang-slim-powerpc-linux-musleabihf")},
|
{"cl-linux-i386",CLR("crossslang-@TAG@-386.tar.gz")},
|
||||||
{"cl-slim-riscv64-linux-musl", CL("crosslang-slim-riscv64-linux-musl")},
|
{"cl-linux-amd64",CLR("crossslang-@TAG@-amd64.tar.gz")},
|
||||||
{"cl-slim-x86-linux-musl", CL("crosslang-slim-x86-linux-musl")},
|
{"cl-linux-arm64",CLR("crossslang-@TAG@-arm64.tar.gz")},
|
||||||
{"cl-slim-x86-windows-gnu", CL("crosslang-slim-x86-windows-gnu.exe")},
|
{"cl-linux-arm7",CLR("crossslang-@TAG@-arm7.tar.gz")},
|
||||||
{"cl-slim-x86_64-linux-musl", CL("crosslang-slim-x86_64-linux-musl")},
|
{"cl-linux-powerpc",CLR("crossslang-@TAG@-powerpc.tar.gz")},
|
||||||
{"cl-slim-x86_64-macos-none", CL("crosslang-slim-x86_64-macos-none")},
|
{"cl-linux-riscv64",CLR("crossslang-@TAG@-riscv64.tar.gz")},
|
||||||
{"cl-slim-x86_64-windows-gnu", CL("crosslang-slim-x86_64-windows-gnu.exe")},
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private static IRedirect Std(string url)
|
private static IRedirect Std(string url)
|
||||||
@@ -46,6 +42,10 @@ class Redirect
|
|||||||
{
|
{
|
||||||
return new GiteaReleaseRedirect(giteaServer,giteaProject,file,prerelease);
|
return new GiteaReleaseRedirect(giteaServer,giteaProject,file,prerelease);
|
||||||
}
|
}
|
||||||
|
private static IRedirect GiteaR(string giteaServer, string giteaProject, string file, bool prerelease = false)
|
||||||
|
{
|
||||||
|
return new GiteaReleaseRedirect(giteaServer,giteaProject,file,prerelease);
|
||||||
|
}
|
||||||
private static IRedirect TF(string filename)
|
private static IRedirect TF(string filename)
|
||||||
{
|
{
|
||||||
return Gitea(
|
return Gitea(
|
||||||
@@ -55,6 +55,15 @@ class Redirect
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
private static IRedirect TFR(string filename)
|
||||||
|
{
|
||||||
|
return GiteaR(
|
||||||
|
"https://git.tesses.org/",
|
||||||
|
"tesses50/tessesframework",
|
||||||
|
filename,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
private static IRedirect CL(string filename)
|
private static IRedirect CL(string filename)
|
||||||
{
|
{
|
||||||
return Gitea(
|
return Gitea(
|
||||||
@@ -64,6 +73,15 @@ class Redirect
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
private static IRedirect CLR(string filename)
|
||||||
|
{
|
||||||
|
return GiteaR(
|
||||||
|
"https://git.tesses.org/",
|
||||||
|
"tesses50/crosslang",
|
||||||
|
filename,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static async Task<string?> HandleRedirectAsync(string redir)
|
public static async Task<string?> HandleRedirectAsync(string redir)
|
||||||
{
|
{
|
||||||
@@ -113,6 +131,48 @@ public class GiteaReleaseRedirect(string giteaServer, string giteaProject, strin
|
|||||||
public List<_asset> Assets {get;set;}=new List<_asset>();
|
public List<_asset> Assets {get;set;}=new List<_asset>();
|
||||||
|
|
||||||
|
|
||||||
|
public class _asset
|
||||||
|
{
|
||||||
|
[JsonPropertyName("name")]
|
||||||
|
public string Name {get;set;}="";
|
||||||
|
|
||||||
|
[JsonPropertyName("browser_download_url")]
|
||||||
|
public string Url {get;set;}="";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class GiteaReleaseWithVersionInNameRedirect(string giteaServer, string giteaProject, string file, bool prerelease = false) : IRedirect
|
||||||
|
{
|
||||||
|
private static HttpClient client =new HttpClient();
|
||||||
|
public async Task<string?> RedirectAsync()
|
||||||
|
{
|
||||||
|
// https://git.tesseslanguage.com/api/v1/repos/tesses50/crosslang/releases?pre-release=true&limit=1
|
||||||
|
var resp = await client.GetFromJsonAsync<List<_release>>($"{giteaServer.TrimEnd('/')}/api/v1/repos/{System.Web.HttpUtility.UrlPathEncode(giteaProject)}/releases?pre-release={(prerelease ? "true":"false")}&limit=1");
|
||||||
|
if(resp is not null)
|
||||||
|
{
|
||||||
|
var resp2 = resp.FirstOrDefault();
|
||||||
|
if(resp2 is not null)
|
||||||
|
{
|
||||||
|
string name = file.Replace("@TAG@", resp2.TagName);
|
||||||
|
|
||||||
|
foreach(var item in resp2.Assets)
|
||||||
|
{
|
||||||
|
if(item.Name == name)
|
||||||
|
return item.Url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class _release
|
||||||
|
{
|
||||||
|
[JsonPropertyName("tag_name")]
|
||||||
|
public string TagName {get;set;} = "";
|
||||||
|
[JsonPropertyName("assets")]
|
||||||
|
public List<_asset> Assets {get;set;}=new List<_asset>();
|
||||||
|
|
||||||
|
|
||||||
public class _asset
|
public class _asset
|
||||||
{
|
{
|
||||||
[JsonPropertyName("name")]
|
[JsonPropertyName("name")]
|
||||||
|
|||||||
Reference in New Issue
Block a user