public override bool Execute() { PrepareExecute(); ExtensibilityDriver.Instance.LoadExtensions(SharpGenLogger, ExtensionAssemblies.Select(x => x.ItemSpec).ToArray()); var config = new ConfigFile { Files = ConfigFiles.Select(file => file.ItemSpec).ToList(), Id = "SharpGen-MSBuild" }; try { config = LoadConfig(config); return(!SharpGenLogger.HasErrors && Execute(config)); } catch (CodeGenFailedException ex) { SharpGenLogger.Fatal("Internal SharpGen exception", ex); return(false); } }
public override bool Execute() { BindingRedirectResolution.Enable(); SharpGenLogger = new Logger(new MSBuildSharpGenLogger(Log), null); var config = new ConfigFile { Files = ConfigFiles.Select(file => file.ItemSpec).ToList(), Id = "SharpGen-MSBuild" }; try { config = LoadConfig(config); if (SharpGenLogger.HasErrors) { return(false); } return(Execute(config)); } catch (CodeGenFailedException ex) { Log.LogError(ex.Message); return(false); } }
public override bool Execute() { var debug = string.Equals("true", DebugTask?.Trim(), StringComparison.OrdinalIgnoreCase); var promptAuth = string.Equals("true", AlwaysPromptInteractiveAuth?.Trim(), StringComparison.OrdinalIgnoreCase); Config.Log.Information = x => Log.LogWarning(x); Config.Log.Error = (ex, m) => Log.LogError("Error while processing secrets from keyvault. " + Environment.NewLine + ex); try { if (debug && !Debugger.IsAttached) { Debugger.Launch(); Debugger.Break(); } if (promptAuth) { Log.LogWarning("KeyVaultBuildTask: Set to always prompting for auth information."); } var service = SecretServiceBuilder.Create() .AlwaysPromptInteractiveAuth(promptAuth) .WithDirectory(DirectoryId) .WithServicePrincipal(ClientId, Secret); if (!string.IsNullOrEmpty(VaultAliases)) { foreach (var alias in VaultAliases?.Trim().Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { var pair = alias.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); service.WithVaultAlias(pair.First(), pair.Last()); Log.LogWarning("Overriding vault '{0}' with '{1}'", pair.First(), pair.Last()); } } var transformKey = new TransformKeys(service.Build()); var files = ConfigFiles.Select(file => file.GetMetadata("Fullpath")).ToArray(); Parallel.ForEach(files, file => { transformKey.SaveAsFile(file); }); } catch (Exception ex) { TokenCache.DefaultShared.Clear(); Config.Log.Error(ex, "Error occured processing secrets. "); if (debug) { Debugger.Break(); } return(false); } return(true); }