예제 #1
0
        private static (string Exe, string Args) BootstrapKnife(string command, string verb, string[] arguments, SpoonConfig config)
        {
            var passedArguments = arguments.ToList();

            if (config.Arguments.ContainsKey($"{command}.{verb}"))
            {
                var defaultArguments = config.Arguments[$"{command}.{verb}"].Where(a => !arguments.Contains(a));
                passedArguments.AddRange(defaultArguments);
            }
            arguments = passedArguments.Select(a => a?.ToLower()).ToArray();

            var knifeExe    = FsPath.Absolute(Location.Workspace(), config.KnifeExe);
            var knifeConfig = FsPath.Absolute(Location.Workspace(), Directories.Config, config.KnifeConfig);
            var knifeArgs   = $"{command.ToLower()} {verb.ToLower()} {string.Join(" ", arguments)} -c '{knifeConfig}' -F json";

            return(knifeExe, knifeArgs);
        }