using Serilog; // Defines a Package namespace EdgeInstaller; sealed partial class Package { public string PackageName { get; private set; } public Version Version { get; private set; } public int Size { get; private set; } public string SHA256 { get; private set; } public string Filename { get; private set; } public Package(string packageString) { Log.Information("Creating package from string"); Log.Debug("PackageString : \n{str}", packageString); // we assume the user is passing only one package. string[] packageLines = packageString.Split('\n'); Log.Debug("Split result : \n{@spl}", packageLines); PackageName = packageLines .Where(line => line.Contains("Package:")) .First() .Split(": ") .Last(); Version = new Version(packageLines .Where(line => line.Contains("Version:")) .First() .Split(": ") .Last()); Size = int.Parse( packageLines .Where(line => line.Contains("Size:")) .First() .Split(": ") .Last()); SHA256 = packageLines .Where(line => line.Contains("SHA256:")) .First() .Split(": ") .Last(); Filename = packageLines .Where(line => line.Contains("Filename:")) .First() .Split(": ") .Last(); } } /* TODO: capture dependencies and create method to find them. - This would probably need distro specific lookup tables. */