public bool CanCheck(BasePluginPointer ptr)
        {
            if (ptr.PluginOrigin == "" || !ptr.PluginOrigin.EndsWith(".dll"))
            {
                return(false);
            }

            Uri origin = ptr.PluginOriginUri;

            return(origin.Scheme == "file" &&
                   File.Exists(PluginPaths.GetPluginAssemblyFile(ptr)) &&
                   File.Exists(ptr.PluginOrigin));
        }
示例#2
0
        public override void OnLoad(PluginAssemblyPointer ptr)
        {
            base.OnLoad(ptr);
            if (isEmbedded)
            {
                return;
            }

            List <string> initList = ListHelper.LoadList(PluginPaths.InitPluginListFile).ToList();

            if (!initList.Contains(PluginPaths.GetPluginAssemblyFile(ptr)))
            {
                initList.Add(PluginPaths.GetPluginAssemblyFile(ptr));
                ListHelper.SaveList(PluginPaths.InitPluginListFile, initList.ToArray());
            }
        }
        public void CheckAndUpdate(
            BasePluginPointer ptr, Func <string, string, bool> updateDialog, Action <string, int, int> setStatus)
        {
            byte[] a   = File.ReadAllBytes(PluginPaths.GetPluginAssemblyFile(ptr));
            byte[] b   = File.ReadAllBytes(ptr.PluginOrigin);
            bool   ret = AreEqual(a, b);

            if (ret)
            {
                return;
            }

            if (!updateDialog(
                    $"The file '{ptr.PluginOrigin}' is a different version. Do you want to Update?",
                    "Update: " + ptr.PluginName
                    ))
            {
                return;
            }

            File.Copy(ptr.PluginOrigin, PluginPaths.GetPluginAssemblyFile(ptr), true);
        }
示例#4
0
        /// <summary>
        ///     To String Implementation Listing all Retrievable Information about the Plugin.
        /// </summary>
        /// <returns>Information Text about this Object.</returns>
        public override string ToString()
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendLine("General:");
            builder.AppendLine("\tIs Initialized: " + PluginManager.IsInitialized);
            builder.AppendLine("\tSystem Config Path: " + PluginPaths.InternalSystemConfigPath);
            builder.AppendLine("\tPlugin Dir: " + PluginPaths.PluginDirectory);
            builder.AppendLine("\tInstalled Packages Path: " + PluginPaths.PluginListFile);
            builder.AppendLine("\tGlobal Packages Path: " + PluginPaths.GlobalPluginListFile);

            builder.AppendLine();
            builder.AppendLine();

            builder.AppendLine("Plugin:");
            builder.AppendLine("Name: " + PluginName);
            builder.AppendLine("\tFile: " + PluginName);
            builder.AppendLine("\tPlugin Directory: " + PluginPaths.GetPluginDirectory(PluginName));
            builder.AppendLine("\tPlugin Config Directory: " + PluginPaths.GetPluginConfigDirectory(PluginName));
            builder.AppendLine("\tPlugin Assembly Directory: " + PluginPaths.GetPluginAssemblyDirectory(PluginName));
            builder.AppendLine("\tPlugin Temp Directory: " + PluginPaths.GetPluginTempDirectory(PluginName));

            //builder.AppendLine($"\tPlugin Archive Backup: " + PluginPaths.GetPluginArchiveBackup(PluginName));
            //builder.AppendLine($"\t\tPlugin Archive Backup Exists: " + File.Exists(PluginPaths.GetPluginArchiveBackup(PluginName)));
            builder.AppendLine("\tPlugin Assembly File: " + PluginPaths.GetPluginAssemblyFile(PluginName, PluginFile));
            builder.AppendLine(
                "\t\tPlugin Assembly File Exists: " +
                File.Exists(PluginPaths.GetPluginAssemblyFile(PluginName, PluginFile))
                );

            //builder.AppendLine($"\tPlugin Version File: " + PluginPaths.GetPluginVersionFile(PluginName));
            //builder.AppendLine($"\t\tPlugin Version File Exists: " + File.Exists(PluginPaths.GetPluginVersionFile(PluginName)));
            //builder.AppendLine($"\t\tPlugin Version File Key: " + PluginPaths.GetPluginVersion(PluginName));
            //builder.AppendLine($"\t\tPlugin Version File Value: " + PluginPaths.GetPluginOriginURL(PluginName));
            return(builder.ToString());
        }
示例#5
0
 /// <summary>
 ///     Loads a C# Assembly from a Pointer
 /// </summary>
 /// <param name="data">Pointer Data</param>
 /// <returns>Loaded Assembly</returns>
 public static Assembly SaveLoadFrom(PluginAssemblyPointer data)
 {
     return(SaveLoadFrom(PluginPaths.GetPluginAssemblyFile(data)));
 }