Minor bug fixes
This commit is contained in:
@ -20,16 +20,8 @@ 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()
|
||||
}
|
||||
var json = File.ReadAllText(Config.ManifestFileName);
|
||||
PackageManager.PackageList = JsonConvert.DeserializeObject<List<Package>>(json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -41,16 +33,8 @@ 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()
|
||||
}
|
||||
File.WriteAllText(Config.ManifestFileName, json);
|
||||
Directory.Delete(Config.TemporaryFolder, true);
|
||||
}
|
||||
|
||||
public static void validateManifestFile()
|
||||
|
||||
@ -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; }
|
||||
@ -16,8 +20,20 @@ namespace PMF.Managers
|
||||
/// </summary>
|
||||
public static void Start()
|
||||
{
|
||||
LocalPackageManager.Start();
|
||||
initialized = true;
|
||||
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()
|
||||
{
|
||||
LocalPackageManager.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;
|
||||
|
||||
@ -16,6 +16,7 @@ namespace PMF
|
||||
NotExisting,
|
||||
VersionNotFound,
|
||||
|
||||
// Common
|
||||
Failed
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -7,6 +7,9 @@ using System.Text;
|
||||
|
||||
namespace PMF
|
||||
{
|
||||
/// <summary>
|
||||
/// Asset version of a Package
|
||||
/// </summary>
|
||||
public class Asset
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user