public void Create(CreateArgs args)
        {
            DirectoryInfo destinationDir = new DirectoryInfo(args.Destination);

            if (destinationDir.Exists && destinationDir.EnumerateFiles().Any())
            {
                if (args.Force)
                {
                    destinationDir.Delete(true);
                }
                else
                {
                    Console.WriteLine("The destination folder already has files. Use -F to force.");
                    Environment.Exit(1);
                }
            }

            destinationDir.Create();

            Config config = new Config("http://localhost:8000/", destinationDir.FullName);

            Queue<BuildStep> steps = new Queue<BuildStep>();

            Queue<string> nupkgs = new Queue<string>(Directory.GetFiles(args.Input, "*.nupkg"));

            steps.Enqueue(new CopyPackagesStep(config, nupkgs));
            steps.Enqueue(new CatalogStep(config, nupkgs));
            steps.Enqueue(new ResolverStep(config));
            steps.Enqueue(new InterceptStep(config));

            while(steps.Count > 0)
            {
                BuildStep step = steps.Dequeue();

                RunStep(step);

                step.Dispose();
            }
        }
        public void Create(CreateArgs args)
        {
            DirectoryInfo destinationDir = new DirectoryInfo(args.Destination);

            if (destinationDir.Exists && destinationDir.EnumerateFiles().Any())
            {
                if (args.Force)
                {
                    destinationDir.Delete(true);
                }
                else
                {
                    Console.WriteLine("The destination folder already has files. Use -F to force.");
                    Environment.Exit(1);
                }
            }

            destinationDir.Create();

            Config config = new Config("http://localhost:8000/", destinationDir.FullName);

            Queue <BuildStep> steps = new Queue <BuildStep>();

            Queue <string> nupkgs = new Queue <string>(Directory.GetFiles(args.Input, "*.nupkg"));

            steps.Enqueue(new CopyPackagesStep(config, nupkgs));
            steps.Enqueue(new CatalogStep(config, nupkgs));
            steps.Enqueue(new ResolverStep(config));
            steps.Enqueue(new InterceptStep(config));

            while (steps.Count > 0)
            {
                BuildStep step = steps.Dequeue();

                RunStep(step);

                step.Dispose();
            }
        }