update structure

This commit is contained in:
2024-04-21 09:36:33 +02:00
parent 34fa5fbffe
commit fd701f3615
24 changed files with 57 additions and 290 deletions

View File

@@ -0,0 +1,30 @@
Imports System.IO
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Converters
Imports Newtonsoft.Json.Linq
Public Class ModpackInfo
Private Const FILENAME_MODPACKINFO = "modpack-info.json"
<JsonConverter(GetType(VersionConverter))>
Public Property Version As Version
Public Sub Save(mcRoot As String)
File.WriteAllText(GetFilePath(mcRoot), JObject.FromObject(Me).ToString)
End Sub
Public Shared Function Load(mcRoot As String) As ModpackInfo
Return JObject.Parse(File.ReadAllText(GetFilePath(mcRoot))).ToObject(Of ModpackInfo)
End Function
Public Shared Function HasModpackInfo(mcRoot As String) As Boolean
Return File.Exists(GetFilePath(mcRoot))
End Function
Private Shared Function GetFilePath(mcRoot As String)
Return Path.Combine(mcRoot, FILENAME_MODPACKINFO)
End Function
End Class

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>ModpackUpdater.Model</RootNamespace>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Pilz.Cryptography" Version="2.0.1" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,13 @@
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Converters
Public Class UpdateAction
<JsonConverter(GetType(StringEnumConverter))>
Public Property Type As UpdateActionType
Public Property DestPath As String
Public Property SrcPath As String
Public Property DownloadUrl As String
Public Property IsDirectory As Boolean
End Class

View File

@@ -0,0 +1,7 @@
Public Enum UpdateActionType
None
Update
Delete
Move
Copy
End Enum

View File

@@ -0,0 +1,22 @@
Imports System.IO
Imports Newtonsoft.Json.Linq
Imports Pilz.Cryptography
Public Class UpdateConfig
Public Property UpdateUrl As String
Public Property WebdavURL As SecureString
Public Property WebdavUsername As SecureString
Public Property WebdavPassword As SecureString
Public Sub SaveToFile(filePath As string)
File.WriteAllText(filePath, JObject.FromObject(Me).ToString)
End Sub
Public Shared Function LoadFromFile(filePath As String) As UpdateConfig
Return JObject.Parse(File.ReadAllText(filePath)).ToObject(Of UpdateConfig)
End Function
End Class

View File

@@ -0,0 +1,10 @@
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Converters
Public Class UpdateInfo
<JsonConverter(GetType(VersionConverter))>
Public Property Version As Version
Public ReadOnly Property Actions As New List(Of UpdateAction)
End Class

View File

@@ -0,0 +1,11 @@
Imports Newtonsoft.Json.Linq
Public Class UpdateInfos
Public ReadOnly Property Updates As New List(Of UpdateInfo)
Public Shared Function Parse(content As String) As UpdateInfos
Return JObject.Parse(content).ToObject(Of UpdateInfos)
End Function
End Class