From 205ef71dcde034b1de4199797d6df40ad1d5c15b Mon Sep 17 00:00:00 2001 From: AustrianToast Date: Tue, 6 Jun 2023 21:21:20 +0200 Subject: [PATCH] Implement TranserPacmanCache --- src/Pacserver.Tests/TransferFilesTest.cs | 13 +++++++++++++ src/Pacserver/Pacserver.cs | 20 +++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/Pacserver.Tests/TransferFilesTest.cs diff --git a/src/Pacserver.Tests/TransferFilesTest.cs b/src/Pacserver.Tests/TransferFilesTest.cs new file mode 100644 index 0000000..52905f8 --- /dev/null +++ b/src/Pacserver.Tests/TransferFilesTest.cs @@ -0,0 +1,13 @@ +using Pacserver.Utils; + +namespace Pacserver.Tests; + +public class TranserFilesTest { + [Fact] + public void TransferPacmanCacheTest() { + string result = PacserverUtils.determinePacmanCacheDirectory(); + PacserverUtils.TransferPacmanCache(); + + //Assert.NotEmpty(Directory.GetFiles("/home/rene/test/")); + } +} diff --git a/src/Pacserver/Pacserver.cs b/src/Pacserver/Pacserver.cs index d8c5366..494f257 100644 --- a/src/Pacserver/Pacserver.cs +++ b/src/Pacserver/Pacserver.cs @@ -1,3 +1,4 @@ +using System.Net.Http.Headers; using System.Text.RegularExpressions; namespace Pacserver.Utils; @@ -33,8 +34,25 @@ public class PacserverUtils { } - public static void transferPacmanCache() { + private static List NewerPackagesAndDatabases = new List(); + public static async void TransferPacmanCache() { + String sourceDir = pacmanCacheDirectory; + String destinationDir = "http://192.160.0.69:12000/upload/"; + NewerPackagesAndDatabases.Add("tree-2.1.1-1-x86_64.pkg.tar.zst"); + HttpClient client = new HttpClient(); + HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://192.168.0.69:12000/upload?path=/"); + MultipartFormDataContent content = new MultipartFormDataContent(); + + foreach (String PkgOrDb in NewerPackagesAndDatabases) { + content.Add(new ByteArrayContent(File.ReadAllBytes(pacmanCacheDirectory + PkgOrDb)), "path", Path.GetFileName(pacmanCacheDirectory + PkgOrDb)); + } + request.Content = content; + + HttpResponseMessage response = await client.SendAsync(request); + response.EnsureSuccessStatusCode(); + string responseBody = await response.Content.ReadAsStringAsync(); + Console.WriteLine(responseBody); } public static void transferPacmanDatabases() {