private static void GenerateSDK(Options options, string[] args)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            SetupLogging(options.Verbosity);
            Logger.Info($"Typewriter is running with the following arguments: {Environment.NewLine}  {string.Join(' ', args)}");

            string csdlContents = MetadataResolver.GetMetadata(options.Metadata);

            switch (options.GenerationMode)
            {
            case GenerationMode.Files:
                Generator.GenerateFiles(csdlContents, options);
                break;

            case GenerationMode.Metadata:
                Generator.WriteCleanAnnotatedMetadata(csdlContents, options);
                break;

            case GenerationMode.Transform:
                Generator.Transform(csdlContents, options);
                break;

            case GenerationMode.TransformWithDocs:
                Generator.TransformWithDocs(csdlContents, options);
                break;

            case GenerationMode.Full:
            default:
                Generator.GenerateFilesFromCleanMetadata(csdlContents, options);
                break;
            }

            stopwatch.Stop();
            Logger.Info($"Generation time: {stopwatch.Elapsed } seconds.");
        }
        private static void GenerateSDK(Options options)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            SetupLogging(options.Verbosity);

            string csdlContents = MetadataResolver.GetMetadata(options.Metadata);

            switch (options.GenerationMode)
            {
            case GenerationMode.Files:
                Generator.GenerateFiles(csdlContents, options);
                break;

            case GenerationMode.Metadata:
                Generator.WriteCleanAnnotatedMetadata(csdlContents, options);
                break;

            case GenerationMode.Transform:
                Generator.Transform(csdlContents, options);
                break;

            case GenerationMode.TransformWithDocs:
                Generator.TransformWithDocs(csdlContents, options);
                break;

            case GenerationMode.Full:
            default:
                Generator.GenerateFilesFromCleanMetadata(csdlContents, options);
                break;
            }

            stopwatch.Stop();
            Logger.Info($"Generation time: {stopwatch.Elapsed } seconds.");
        }