Ejemplo n.º 1
0
        private void AddDependencies(TaskRunnerNode uninstallNode, string configPath, string cwd)
        {
            var    tasks       = TaskParser.LoadDependencies(configPath);
            string allPackages = string.Join(" ", tasks.Values.SelectMany(t => t));

            uninstallNode.Command.Args = $"/c npm uninstall {allPackages} --color=always";

            foreach (var dep in tasks.Keys)
            {
                var depPackages = string.Join(" ", tasks[dep]);
                var depNode     = CreateTask(cwd, dep, $"npm uninstall {depPackages}");

                foreach (var package in tasks[dep])
                {
                    var child = CreateTask(cwd, $"uninstall {package}", $"npm uninstall {package}");
                    depNode.Children.Add(child);
                }

                uninstallNode.Children.Add(depNode);
            }
        }
Ejemplo n.º 2
0
        private ITaskRunnerNode LoadHierarchy(string configPath)
        {
            var cliCommandName = GetCliCommandName(configPath);

            SetRootNodeIcon(cliCommandName);
            bool isNpm = (cliCommandName == Constants.NPM_CLI_COMMAND);

            ITaskRunnerNode root = new TaskNode(Vsix.Name, false, isNpm);

            var scripts   = TaskParser.LoadTasks(configPath, cliCommandName);
            var hierarchy = GetHierarchy(scripts.Keys);

            IEnumerable <string> allDefaultTasks = (isNpm
                ? Constants.NPM_ALL_DEFAULT_TASKS
                : Constants.YARN_ALL_DEFAULT_TASKS);
            var defaults = hierarchy.Where(h => allDefaultTasks.Contains(h.Key));

            TaskNode defaultTasks = new TaskNode("Defaults", false, isNpm);

            defaultTasks.Description = $"Default predefined {cliCommandName} commands.";
            root.Children.Add(defaultTasks);
            AddCommands(configPath, scripts, defaults, defaultTasks, isNpm);

            if (hierarchy.Count != defaults.Count())
            {
                var customs = hierarchy.Except(defaults);

                TaskNode customTasks = new TaskNode("Custom", false, isNpm);
                customTasks.Description = $"Custom {cliCommandName} commands.";
                root.Children.Add(customTasks);

                AddCommands(configPath, scripts, customs, customTasks, isNpm);
            }

            return(root);
        }