Exemple #1
0
        // 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)
            {
            }
        }
Exemple #2
0
        // 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);
        }
Exemple #4
0
        //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);
                }
            }
        }
Exemple #5
0
        // 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);
        }