Minor bug fixes

This commit is contained in:
The Doctor
2020-06-22 14:09:09 +01:00
parent 6f1fdbd35f
commit 3d0279bf7e
5 changed files with 40 additions and 53 deletions

View File

@ -20,17 +20,9 @@ namespace PMF.Managers
public static void Start()
{
validateManifestFile();
try
{
var json = File.ReadAllText(Config.ManifestFileName);
PackageManager.PackageList = JsonConvert.DeserializeObject<List<Package>>(json);
}
catch (FileNotFoundException)
{
// Something failed with validateManifestFile()
}
}
/// <summary>
/// Saves everything to disk
@ -41,17 +33,9 @@ namespace PMF.Managers
validateManifestFile();
var json = JsonConvert.SerializeObject(PackageManager.PackageList);
try
{
File.WriteAllText(Config.ManifestFileName, json);
Directory.Delete(Config.TemporaryFolder, true);
}
catch (IOException)
{
// Something failed with validateManifestFile()
}
}
public static void validateManifestFile()
{

View File

@ -5,6 +5,10 @@ using System.Text;
namespace PMF.Managers
{
/// <summary>
/// Global Package manager for PMF
/// Combines RemotePackageManager and LocalPackageManager
/// </summary>
public static class PackageManager
{
public static List<Package> PackageList { get; internal set; }
@ -15,9 +19,21 @@ namespace PMF.Managers
/// Initializes the package manager. Required
/// </summary>
public static void Start()
{
try
{
if (!initialized)
{
LocalPackageManager.Start();
initialized = true;
Console.WriteLine("PMF intialized succesfully");
}
}
catch (Exception ex)
{
Console.Error.WriteLine($"PMF failed to initialize. \n${ex.InnerException.Message}\nClosing.");
Environment.Exit(0);
}
}
/// <summary>
@ -25,12 +41,21 @@ namespace PMF.Managers
/// </summary>
public static void Stop()
{
try
{
if (initialized)
LocalPackageManager.Stop();
}
catch (Exception ex)
{
Console.Error.WriteLine($"Something failed while cleaning up PMF - \n{ex.InnerException.Message}");
}
}
private static void notInitialized()
{
Console.WriteLine("You must initialize PMF first before using it");
Console.WriteLine("You must initialize PMF first before using it.\nClosing");
Environment.Exit(0);
}
/// <summary>
@ -42,10 +67,7 @@ namespace PMF.Managers
public static PackageState InstallPackage(Package package, Asset asset)
{
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
string zipFile = RemotePackageManager.DownloadAsset(package.ID, asset);
LocalPackageManager.InstallPackage(package, asset, zipFile);
@ -64,15 +86,11 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
// check if is already installed
if (!LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string packageDirectory))
{
// get package info for version
Package remotePackage = RemotePackageManager.GetPackageInfo(id);
if (remotePackage == null)
@ -103,10 +121,7 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
// check if is already installed
if (!LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string packageDirectory))
@ -142,10 +157,7 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
// check if is already installed
if (LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string packageDirectory))
@ -173,10 +185,7 @@ namespace PMF.Managers
public static bool Uninstall(string id)
{
if (!initialized)
{
notInitialized();
return false;
}
return LocalPackageManager.RemovePackage(id);
}
@ -192,10 +201,7 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
// check if is already installed
if (!LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string packageDirectory))
@ -227,10 +233,7 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
// check if is already installed
if (!LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string packageDirectory))
@ -264,10 +267,7 @@ namespace PMF.Managers
package = null;
if (!initialized)
{
notInitialized();
return PackageState.Failed;
}
if (!LocalPackageManager.IsPackageInstalled(id, out Package localPackage, out string pd))
return PackageState.NotInstalled;

View File

@ -16,6 +16,7 @@ namespace PMF
NotExisting,
VersionNotFound,
// Common
Failed
}
}

View File

@ -1,4 +1,5 @@
using Newtonsoft.Json;
using PMF.Exceptions;
using System;
using System.Collections.Generic;
using System.IO;
@ -42,7 +43,6 @@ namespace PMF.Managers
using (WebClient client = new WebClient())
{
var zipPath = Path.Combine(Config.TemporaryFolder, id);
Directory.CreateDirectory(zipPath);
client.DownloadFile(asset.Url, Path.Combine(zipPath, asset.FileName));
foreach (var dependency in asset.Dependencies)
client.DownloadFile(dependency.Url, Path.Combine(zipPath, dependency.FileName));
@ -60,9 +60,8 @@ namespace PMF.Managers
if (package == null)
throw new ArgumentNullException();
// Maybe throw a different exception here
if (package.Assets.Count == 0)
throw new ArgumentNullException("asset count");
return null;
Asset ret_asset = null;
foreach (var asset in package.Assets)
@ -84,7 +83,7 @@ namespace PMF.Managers
if (package == null)
throw new ArgumentNullException();
if (package.Assets.Count == 0)
throw new ArgumentNullException("asset count");
return null;
Asset ret_asset = null;
foreach (var asset in package.Assets)

View File

@ -7,6 +7,9 @@ using System.Text;
namespace PMF
{
/// <summary>
/// Asset version of a Package
/// </summary>
public class Asset
{
/// <summary>