// TODO add more options static void Main(string[] args) { PluginBase.IS_CALLED_FROM_PACKER = true; if (args.Length < 1) { Console.WriteLine("Set miner plugins root path"); return; } //var exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var exePath = Environment.CurrentDirectory; var pluginPackagesFolder = Path.Combine(exePath, "plugins_packages"); var pluginsSearchRoot = args[0]; var pathMustContain = new List <string> { "obj", "Release", "netstandard2.0", }; var pathMustNOTContain = new List <string> { "MinerPlugin", "bin", "BrokenMiner", "Ethlargement", "Ethminer", "ExamplePlugin", "FakePlugin", "SRBMiner", }; // get all managed plugin dll's var dllFiles = Directory.GetFiles(pluginsSearchRoot, "*.dll", SearchOption.AllDirectories) .Where(filePath => pathMustContain.All(subDir => filePath.Contains(subDir)) && pathMustNOTContain.All(subDir => !filePath.Contains(subDir))).ToList(); var packedPlugins = new HashSet <string>(); if (Directory.Exists(pluginPackagesFolder)) { Console.WriteLine("Deleting old plugins packages"); Directory.Delete(pluginPackagesFolder, true); } if (!Directory.Exists(pluginPackagesFolder)) { Directory.CreateDirectory(pluginPackagesFolder); } // what plugins to bundle var bundlePlugins = new List <string> { "2257f160-7236-11e9-b20c-f9f12eb6d835", // CCMinerTpruvotPlugin "70984aa0-7236-11e9-b20c-f9f12eb6d835", // ClaymoreDual14Plugin //"92fceb00-7236-11e9-b20c-f9f12eb6d835", // CPUMinerPlugin "1b7019d0-7237-11e9-b20c-f9f12eb6d835", // GMinerPlugin "435f0820-7237-11e9-b20c-f9f12eb6d835", // LolMinerPlugin "59bba2c0-b1ef-11e9-8e4e-bb1e2c6e76b4", // MiniZPlugin "6c07f7a0-7237-11e9-b20c-f9f12eb6d835", // NBMinerPlugin "f5d4a470-e360-11e9-a914-497feefbdfc8", // PhoenixPlugin "abc3e2a0-7237-11e9-b20c-f9f12eb6d835", // TeamRedMinerPlugin "d47d9b00-7237-11e9-b20c-f9f12eb6d835", // TRexPlugin //"3d4e56b0-7238-11e9-b20c-f9f12eb6d835", // XmrStakPlugin "5532d300-7238-11e9-b20c-f9f12eb6d835", // ZEnemyPlugin //"4aec5ec0-10f8-11ea-bad3-8dea21141bbb", // XmrStakRxPlugin "1046ea50-c261-11e9-8e4e-bb1e2c6e76b4", // XMRig }; var bundlePluginsDlls = new Dictionary <string, string>(); foreach (var filePath in dllFiles) { var dllDir = Path.GetDirectoryName(filePath); var loaded = MinerPluginHost.LoadPlugin(dllDir); if (loaded.Count() == 0) { // log what we couldn't load and continue Console.WriteLine($"Skipping: {filePath}"); continue; } var newPlugins = MinerPluginHost.MinerPlugin .Where(kvp => packedPlugins.Contains(kvp.Key) == false) .Select(kvp => kvp.Value); foreach (var plugin in newPlugins) { try { CheckPluginMetaData(plugin); } catch (Exception e) { Console.WriteLine($"\t\tCheckPluginMetaData ERROR!!!!!!!!! {e.Message}"); } } foreach (var plugin in newPlugins) { try { if (bundlePlugins.Contains(plugin.PluginUUID)) { bundlePluginsDlls.Add(plugin.PluginUUID, filePath); } var pluginZipFileName = GetPluginPackageName(plugin); var dllPackageZip = Path.Combine(pluginPackagesFolder, pluginZipFileName); Console.WriteLine($"Packaging: {dllPackageZip}"); var fileName = Path.GetFileName(filePath); using (var archive = ZipFile.Open(dllPackageZip, ZipArchiveMode.Create)) { archive.CreateEntryFromFile(filePath, fileName); } packedPlugins.Add(plugin.PluginUUID); AddPluginToPluginPackageInfos(plugin); } catch (Exception e) { Console.WriteLine($"\t\t{e.Message}"); } } } try { var preinstalledDlls = Path.Combine(exePath, "miner_plugins"); if (!Directory.Exists(preinstalledDlls)) { Directory.CreateDirectory(preinstalledDlls); } foreach (var kvp in bundlePluginsDlls) { var preinstalledDllPlugin = Path.Combine(exePath, "miner_plugins", kvp.Key); var fileName = Path.GetFileName(kvp.Value); var dllPath = Path.Combine(preinstalledDllPlugin, fileName); if (!Directory.Exists(preinstalledDllPlugin)) { Directory.CreateDirectory(preinstalledDllPlugin); } File.Copy(kvp.Value, dllPath); } } catch (Exception e) { Console.WriteLine($"\t\t{e.Message}"); } // dump our plugin packages InternalConfigs.WriteFileSettings(Path.Combine(pluginPackagesFolder, "update.json"), PluginPackageInfos); try { var deleteFolder = Path.Combine(exePath, "miner_plugins", "BrokenMinerPluginUUID"); Directory.Delete(deleteFolder, true); } catch (Exception) { } }
// TODO add more options static void Main(string[] args) { PluginBase.IS_CALLED_FROM_PACKER = true; if (args.Length < 1) { Console.WriteLine("Set miner plugins root path"); return; } //var exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var exePath = Environment.CurrentDirectory; var pluginPackagesFolder = Path.Combine(exePath, "plugins_packages"); var pluginsSearchRoot = args[0]; var pathMustContain = new List <string> { "obj", "Release", "netstandard2.0", }; var pathMustNOTContain = new List <string> { "MinerPlugin", "bin", "BrokenMiner", "Ethlargement", "Ethminer", "ExamplePlugin", "FakePlugin", }; // get all managed plugin dll's var dllFiles = Directory.GetFiles(pluginsSearchRoot, "*.dll", SearchOption.AllDirectories) .Where(filePath => pathMustContain.All(subDir => filePath.Contains(subDir)) && pathMustNOTContain.All(subDir => !filePath.Contains(subDir))).ToList(); var packedPlugins = new HashSet <string>(); if (Directory.Exists(pluginPackagesFolder)) { Console.WriteLine("Deleting old plugins packages"); Directory.Delete(pluginPackagesFolder, true); } if (!Directory.Exists(pluginPackagesFolder)) { Directory.CreateDirectory(pluginPackagesFolder); } // what plugins to bundle var bundlePlugins = new List <string> { //"e294f620-94eb-11ea-a64d-17be303ea466", // CryptoDredge "e7a58030-94eb-11ea-a64d-17be303ea466", // GMinerPlugin "eb75e920-94eb-11ea-a64d-17be303ea466", // LolMiner //"eda6abd0-94eb-11ea-a64d-17be303ea466", // MiniZ - BROKEN //"f25fee20-94eb-11ea-a64d-17be303ea466", // NanoMiner "f683f550-94eb-11ea-a64d-17be303ea466", // NBMiner "fa369d10-94eb-11ea-a64d-17be303ea466", // Phoenix //"fd45fff0-94eb-11ea-a64d-17be303ea466", // SRBMiner //"01177a50-94ec-11ea-a64d-17be303ea466", // TeamRedMiner //"03f80500-94ec-11ea-a64d-17be303ea466", // TRex //"074d4a80-94ec-11ea-a64d-17be303ea466", // TTMiner //"0a07d6a0-94ec-11ea-a64d-17be303ea466", // WildRig "0e0a7320-94ec-11ea-a64d-17be303ea466", // XMRig //"1484c660-94ec-11ea-a64d-17be303ea466", // ZEnemy }; var bundlePluginsDlls = new Dictionary <string, string>(); foreach (var filePath in dllFiles) { var dllDir = Path.GetDirectoryName(filePath); var loaded = MinerPluginHost.LoadPlugin(dllDir); if (loaded.Count() == 0) { // log what we couldn't load and continue Console.WriteLine($"Skipping: {filePath}"); continue; } var newPlugins = MinerPluginHost.MinerPlugin .Where(kvp => packedPlugins.Contains(kvp.Key) == false) .Select(kvp => kvp.Value); foreach (var plugin in newPlugins) { try { CheckPluginMetaData(plugin); } catch (Exception e) { Console.WriteLine($"\t\tCheckPluginMetaData ERROR!!!!!!!!! {e.Message}"); } } foreach (var plugin in newPlugins) { try { if (bundlePlugins.Contains(plugin.PluginUUID)) { bundlePluginsDlls.Add(plugin.PluginUUID, filePath); } var pluginZipFileName = GetPluginPackageName(plugin); var dllPackageZip = Path.Combine(pluginPackagesFolder, pluginZipFileName); Console.WriteLine($"Packaging: {dllPackageZip}"); var fileName = Path.GetFileName(filePath); using (var archive = ZipFile.Open(dllPackageZip, ZipArchiveMode.Create)) { archive.CreateEntryFromFile(filePath, fileName); } packedPlugins.Add(plugin.PluginUUID); AddPluginToPluginPackageInfos(plugin); } catch (Exception e) { Console.WriteLine($"\t\t{e.Message}"); } } } try { var preinstalledDlls = Path.Combine(exePath, "miner_plugins"); if (!Directory.Exists(preinstalledDlls)) { Directory.CreateDirectory(preinstalledDlls); } foreach (var kvp in bundlePluginsDlls) { var preinstalledDllPlugin = Path.Combine(exePath, "miner_plugins", kvp.Key); var fileName = Path.GetFileName(kvp.Value); var dllPath = Path.Combine(preinstalledDllPlugin, fileName); if (!Directory.Exists(preinstalledDllPlugin)) { Directory.CreateDirectory(preinstalledDllPlugin); } File.Copy(kvp.Value, dllPath); } } catch (Exception e) { Console.WriteLine($"\t\t{e.Message}"); } // dump our plugin packages File.WriteAllText(Path.Combine(pluginPackagesFolder, "update.json"), JsonConvert.SerializeObject(PluginPackageInfos, Formatting.Indented)); try { var deleteFolder = Path.Combine(exePath, "miner_plugins", "BrokenMinerPluginUUID"); Directory.Delete(deleteFolder, true); } catch (Exception) { } }
// TODO add more options static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Set miner plugins root path"); return; } var exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var pluginPackagesFolder = Path.Combine(exePath, "plugins_packages"); var pluginsSearchRoot = args[0]; // get all managed plugin dll's var dllFiles = Directory.GetFiles(pluginsSearchRoot, "*.dll", SearchOption.AllDirectories) .Where(filePath => !filePath.Contains("MinerPlugin") && filePath.Contains("net45") && filePath.Contains("Release") && !filePath.Contains("bin")).ToList(); var packedPlugins = new HashSet <string>(); if (Directory.Exists(pluginPackagesFolder)) { Console.WriteLine("Deleting old plugins packages"); Directory.Delete(pluginPackagesFolder, true); } if (!Directory.Exists(pluginPackagesFolder)) { Directory.CreateDirectory(pluginPackagesFolder); } // what plugins to bundle var bundlePlugins = new List <string> { "2257f160-7236-11e9-b20c-f9f12eb6d835", // CCMinerTpruvotPlugin "70984aa0-7236-11e9-b20c-f9f12eb6d835", // ClaymoreDual14Plugin "92fceb00-7236-11e9-b20c-f9f12eb6d835", // CPUMinerPlugin "1b7019d0-7237-11e9-b20c-f9f12eb6d835", // GMinerPlugin "435f0820-7237-11e9-b20c-f9f12eb6d835", // LolMinerBeamPlugin "59bba2c0-b1ef-11e9-8e4e-bb1e2c6e76b4", // MiniZPlugin "6c07f7a0-7237-11e9-b20c-f9f12eb6d835", // NBMinerPlugin "f5d4a470-e360-11e9-a914-497feefbdfc8", // PhoenixPlugin "abc3e2a0-7237-11e9-b20c-f9f12eb6d835", // TeamRedMinerPlugin "d47d9b00-7237-11e9-b20c-f9f12eb6d835", // TRexPlugin "3d4e56b0-7238-11e9-b20c-f9f12eb6d835", // XmrStakPlugin "5532d300-7238-11e9-b20c-f9f12eb6d835", // ZEnemyPlugin }; var bundlePluginsDlls = new Dictionary <string, string>(); foreach (var filePath in dllFiles) { var dllDir = Path.GetDirectoryName(filePath); var loaded = MinerPluginHost.LoadPlugin(dllDir); if (loaded.Count() == 0) { // log what we couldn't load and continue Console.WriteLine($"Skipping: {filePath}"); continue; } var newPlugins = MinerPluginHost.MinerPlugin .Where(kvp => packedPlugins.Contains(kvp.Key) == false) .Select(kvp => kvp.Value); foreach (var plugin in newPlugins) { if (bundlePlugins.Contains(plugin.PluginUUID)) { bundlePluginsDlls.Add(plugin.PluginUUID, filePath); } var pluginZipFileName = GetPluginPackageName(plugin); var dllPackageZip = Path.Combine(pluginPackagesFolder, pluginZipFileName); Console.WriteLine($"Packaging: {dllPackageZip}"); var fileName = Path.GetFileName(filePath); using (var archive = ZipFile.Open(dllPackageZip, ZipArchiveMode.Create)) { archive.CreateEntryFromFile(filePath, fileName); } packedPlugins.Add(plugin.PluginUUID); AddPluginToPluginPackageInfos(plugin); } } var preinstalledDlls = Path.Combine(exePath, "miner_plugins"); if (!Directory.Exists(preinstalledDlls)) { Directory.CreateDirectory(preinstalledDlls); } foreach (var kvp in bundlePluginsDlls) { var preinstalledDllPlugin = Path.Combine(exePath, "miner_plugins", kvp.Key); var fileName = Path.GetFileName(kvp.Value); var dllPath = Path.Combine(preinstalledDllPlugin, fileName); if (!Directory.Exists(preinstalledDllPlugin)) { Directory.CreateDirectory(preinstalledDllPlugin); } File.Copy(kvp.Value, dllPath); } var deleteFolder = Path.Combine(exePath, "miner_plugins", "BrokenMinerPluginUUID"); Directory.Delete(deleteFolder, true); // dump our plugin packages InternalConfigs.WriteFileSettings(Path.Combine(pluginPackagesFolder, "update.json"), PluginPackageInfos); }
//private static List<string> _mandatoryParameters = new List<string> //{ // "-rootDir", // "-type", // r - release || d - debug //}; //var rootPath = ""; //var type = ""; //for (int i = 0; i < args.Length - 1; i++) //{ // var param = args[i]; // var value = //} // TODO add more options static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Set miner plugins root path"); return; } var exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var pluginPackagesFolder = Path.Combine(exePath, "plugins_packages"); var pluginsSearchRoot = args[0]; // get all managed plugin dll's var dllFiles = Directory.GetFiles(pluginsSearchRoot, "*.dll", SearchOption.AllDirectories) .Where(filePath => !filePath.Contains("MinerPlugin") && filePath.Contains("Release") && !filePath.Contains("bin")).ToList(); var packedPlugins = new HashSet <string>(); if (Directory.Exists(pluginPackagesFolder)) { Console.WriteLine("Deleting old plugins packages"); Directory.Delete(pluginPackagesFolder, true); } if (!Directory.Exists(pluginPackagesFolder)) { Directory.CreateDirectory(pluginPackagesFolder); } foreach (var filePath in dllFiles) { var dllDir = Path.GetDirectoryName(filePath); var loaded = MinerPluginHost.LoadPlugin(dllDir); if (loaded == 0) { // log what we couldn't load and continue Console.WriteLine($"Skipping: {filePath}"); continue; } var newPlugins = MinerPluginHost.MinerPlugin .Where(kvp => packedPlugins.Contains(kvp.Key) == false) .Select(kvp => kvp.Value); foreach (var plugin in newPlugins) { // TODO workaround to check if it is built with the Toolkit var isToolkitMiner = plugin is IInitInternals; var versionStr = $"v{plugin.Version.Major}.{plugin.Version.Minor}"; if (isToolkitMiner) { versionStr = $"{versionStr}_mptoolkitV1"; } var pluginZipFileName = $"{plugin.Name}_{versionStr}_{plugin.PluginUUID}.zip"; var dllPackageZip = Path.Combine(pluginPackagesFolder, pluginZipFileName); Console.WriteLine($"Packaging: {dllPackageZip}"); var fileName = Path.GetFileName(filePath); using (var archive = ZipFile.Open(dllPackageZip, ZipArchiveMode.Create)) { archive.CreateEntryFromFile(filePath, fileName); } packedPlugins.Add(plugin.PluginUUID); } } }
// TODO add more options static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Set miner plugins root path"); return; } var exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var pluginPackagesFolder = Path.Combine(exePath, "plugins_packages"); var pluginsSearchRoot = args[0]; // get all managed plugin dll's var dllFiles = Directory.GetFiles(pluginsSearchRoot, "*.dll", SearchOption.AllDirectories) .Where(filePath => !filePath.Contains("MinerPlugin") && filePath.Contains("net45") && filePath.Contains("Release") && !filePath.Contains("bin")).ToList(); var packedPlugins = new HashSet <string>(); if (Directory.Exists(pluginPackagesFolder)) { Console.WriteLine("Deleting old plugins packages"); Directory.Delete(pluginPackagesFolder, true); } if (!Directory.Exists(pluginPackagesFolder)) { Directory.CreateDirectory(pluginPackagesFolder); } foreach (var filePath in dllFiles) { var dllDir = Path.GetDirectoryName(filePath); var loaded = MinerPluginHost.LoadPlugin(dllDir); if (loaded.Count() == 0) { // log what we couldn't load and continue Console.WriteLine($"Skipping: {filePath}"); continue; } var newPlugins = MinerPluginHost.MinerPlugin .Where(kvp => packedPlugins.Contains(kvp.Key) == false) .Select(kvp => kvp.Value); foreach (var plugin in newPlugins) { var pluginZipFileName = GetPluginPackageName(plugin); var dllPackageZip = Path.Combine(pluginPackagesFolder, pluginZipFileName); Console.WriteLine($"Packaging: {dllPackageZip}"); var fileName = Path.GetFileName(filePath); using (var archive = ZipFile.Open(dllPackageZip, ZipArchiveMode.Create)) { archive.CreateEntryFromFile(filePath, fileName); } packedPlugins.Add(plugin.PluginUUID); AddPluginToPluginPackageInfos(plugin); } } // dump our plugin packages InternalConfigs.WriteFileSettings(Path.Combine(pluginPackagesFolder, "update.json"), PluginPackageInfos); }