Пример #1
0
 public void SetExtractPath(Entry entry, string destinationPath)
 {
     if (destinationPath != null)
     {
         ExtractPaths.Add(entry, destinationPath);
         if (ArchiveHelpers.IsPlugin(destinationPath))
         {
             PluginPaths.Add(destinationPath);
         }
         else if (ArchiveHelpers.IsArchive(destinationPath))
         {
             ArchivePaths.Add(destinationPath);
         }
     }
 }
Пример #2
0
        public void ParseArguments(string[] args)
        {
            var enumerator = args.GetEnumerator();

            while (enumerator.MoveNext())
            {
                var arg = (string)enumerator.Current;

                if (arg == "--plugins")
                {
                    enumerator.MoveNext();
                    PluginPaths.Add((string)enumerator.Current);
                }

                if (arg == "--plugin-name")
                {
                    enumerator.MoveNext();
                    var v = (string)enumerator.Current;
                    var s = v.Split('@');
                    if (s.Length > 1)
                    {
                        PluginNames.Add(new KeyValuePair <string, string>(s[0], s[1]));
                    }
                    else
                    {
                        PluginNames.Add(new KeyValuePair <string, string>(s[0], string.Empty));
                    }
                }

                if (arg == "-s")
                {
                    enumerator.MoveNext();
                    SolutionRoot = Path.GetFullPath((string)enumerator.Current);
                }
            }

            BootstrapPath        = Path.GetDirectoryName(_appEnv.ApplicationBasePath);
            OmnisharpProjectPath = Path.Combine(BootstrapPath, "OmniSharp.Host", "project.json");
            if (!File.Exists(OmnisharpProjectPath))
            {
                OmnisharpProjectPath = Path.Combine(OmnisharpProjectPath, "OmniSharp.Host", "1.0.0", "root", "project.json");
            }

            if (!string.IsNullOrEmpty(SolutionRoot))
            {
                var pluginsFolder = Path.Combine(SolutionRoot, ".omnisharp", "plugins");
                if (Directory.Exists(pluginsFolder))
                {
                    PluginPaths.Add(pluginsFolder);
                }

                var omnisharpJsonPath = Path.Combine(SolutionRoot, "omnisharp.json");
                if (File.Exists(omnisharpJsonPath))
                {
                    var omnisharpJson = JObject.Parse(File.ReadAllText(omnisharpJsonPath));
                    if (omnisharpJson["plugins"] != null)
                    {
                        var omnisharpJsonPlugins = omnisharpJson["plugins"];
                        foreach (var plugin in omnisharpJsonPlugins)
                        {
                            if (plugin is JObject)
                            {
                                var pluginJobject = plugin as JObject;
                                PluginNames.Add(new KeyValuePair <string, string>(pluginJobject["name"].ToString(), pluginJobject["version"].ToString()));
                            }
                            else if (plugin is JToken)
                            {
                                var pluginString      = plugin.ToString();
                                var pluginSplitString = pluginString.Split('@');
                                if (pluginSplitString.Length > 1)
                                {
                                    PluginNames.Add(new KeyValuePair <string, string>(pluginSplitString[0], pluginSplitString[1]));
                                }
                                else
                                {
                                    PluginNames.Add(new KeyValuePair <string, string>(pluginSplitString[0], string.Empty));
                                }
                            }
                        }
                    }
                }
            }
        }