public async Task Deploy(string Name, Template template) { var path = Path.Combine(Environment.CurrentDirectory, Name); if (FileSystemHelpers.DirectoryExists(path)) { var response = "n"; do { ColoredConsole.Write($"A directory with the name {Name} already exists. Overwrite [y/n]? [n] "); response = Console.ReadLine(); } while (response != "n" && response != "y"); if (response == "n") { return; } } if (FileSystemHelpers.DirectoryExists(path)) { FileSystemHelpers.DeleteDirectorySafe(path, ignoreErrors: false); } FileSystemHelpers.EnsureDirectory(path); foreach (var file in template.Files.Where(kv => !kv.Key.EndsWith(".dat"))) { var filePath = Path.Combine(path, file.Key); ColoredConsole.WriteLine($"Writing {filePath}"); await FileSystemHelpers.WriteAllTextToFileAsync(filePath, file.Value); } var functionJsonPath = Path.Combine(path, "function.json"); ColoredConsole.WriteLine($"Writing {functionJsonPath}"); await FileSystemHelpers.WriteAllTextToFileAsync(functionJsonPath, JsonConvert.SerializeObject(template.Function, Formatting.Indented)); if (template.Metadata.Extensions != null) { foreach (var extension in template.Metadata.Extensions) { var installAction = new InstallExtensionAction(_secretsManager, false) { Package = extension.Id, Version = extension.Version }; await installAction.RunAsync(); } } }
public async Task Deploy(string Name, Template template) { var path = Path.Combine(Environment.CurrentDirectory, Name); if (FileSystemHelpers.DirectoryExists(path)) { var response = "n"; do { ColoredConsole.Write("A directory with the name {Name} already exists. Overwrite [y/n]? [n] "); response = Console.ReadLine(); } while (response != "n" && response != "y"); if (response == "n") { return; } } if (FileSystemHelpers.DirectoryExists(path)) { FileSystemHelpers.DeleteDirectorySafe(path, ignoreErrors: false); } FileSystemHelpers.EnsureDirectory(path); foreach (var file in template.Files) { var filePath = Path.Combine(path, file.Key); ColoredConsole.WriteLine($"Writing {filePath}"); await FileSystemHelpers.WriteAllTextToFileAsync(filePath, file.Value); } var functionJsonPath = Path.Combine(path, "function.json"); ColoredConsole.WriteLine($"Writing {functionJsonPath}"); await FileSystemHelpers.WriteAllTextToFileAsync(functionJsonPath, JsonConvert.SerializeObject(template.Function, Formatting.Indented)); }