示例#1
0
        private async Task <string> GetChangesSettings()
        {
            var defaultFileName = $"{DateTime.Now.ToString("yyyyMMdd_hhmm")}-Changes";
            await Out.WriteLineAsync("Time to output Chauffeur changes!");

            await Out.WriteAsync($"What do you want the name to be ({defaultFileName})? ");

            var name = await In.ReadLineWithDefaultAsync(defaultFileName);

            return(name);
        }
        private async Task <(string name, string includeInstall)> GetScaffoldSettings()
        {
            await Out.WriteLineAsync("Time to setup Chauffeur!");

            await Out.WriteAsync("What do you want the name to be (001-Setup)? ");

            var name = await In.ReadLineWithDefaultAsync("001-Setup");

            await Out.WriteAsync("Include an install step (Y/n)? ");

            var includeInstall = await In.ReadLineWithDefaultAsync("Y");

            return(name, includeInstall);
        }
        public async override Task <DeliverableResponse> Run(string command, string[] args)
        {
            var useDefaults = args.Any() && args[0] == "default";

            var(name, includeInstall) = useDefaults ?
                                        GetScaffoldDefaultSettings() :
                                        await GetScaffoldSettings();

            using (var deliveryFileStream = CreateDeliveryFile(name))
            {
                if (includeInstall.ToLowerInvariant() == "y")
                {
                    await deliveryFileStream.WriteLineAsync("install y");

                    await deliveryFileStream.WriteLineAsync("user change-password admin $adminpwd$");
                }

                if (!useDefaults)
                {
                    await Out.WriteAsync("Do you want to package your current instance (Y/n)? ");

                    var package = await In.ReadLineWithDefaultAsync("Y");

                    if (package.ToLowerInvariant() == "y")
                    {
                        await CreatePackage(deliveryFileStream, name);
                    }
                }
                else
                {
                    await CreatePackage(deliveryFileStream, name);
                }
            }

            await Out.WriteLineAsync("Chauffeur is all setup and ready to go. To run your first delivery just run:");

            if (includeInstall.ToLowerInvariant() == "y")
            {
                await Out.WriteLineAsync("./Chauffeur.Runner.exe delivery -p:adminpwd=MySuperSecretPassword!");
            }
            else
            {
                await Out.WriteLineAsync("./Chauffeur.Runner.exe delivery");
            }

            return(DeliverableResponse.Continue);
        }