Beispiel #1
0
        public static async Task <int> Run(string[] args, Logger logger)
        {
            var sqlPackagePath = DiffloatEnvironment.GetSqlPackagePath();

            if (string.IsNullOrEmpty(sqlPackagePath))
            {
                logger.Error(@"Install SQL Server Data Tools (SSDT) from https://docs.microsoft.com/ja-jp/sql/ssdt/download-sql-server-data-tools-ssdt .");
                return(-1);
            }

            var options = OptionParser.ConvertOptionsToDictionary(args);
            var action  = ActionOption.Analyze(options);

            if (action == null)
            {
                logger.Error($@"Argument '{ActionOption.ActionParamDisplayName}' is required and value of Extract or DiffScript.");
                return(-1);
            }

            switch (action.Value)
            {
            case Actions.Extract:
                await ExtractAction.RunAsync(options, sqlPackagePath, logger);

                break;

            case Actions.DiffScript:
                await DiffScriptAction.RunAsync(options, sqlPackagePath, logger);

                break;

            default:
                logger.Error(@"This Action is not implemented.");
                return(-1);
            }

            return(0);
        }