public void TestDefaultTimeout() { var process = new BucketProcessExecutor(); var processDefault = new BucketProcessExecutor { Timeout = 1, }; Assert.AreEqual(Timeout.Infinite, process.Timeout); Assert.AreEqual(1, processDefault.Timeout); BucketProcessExecutor.SetDefaultTimeout(999); Assert.AreEqual(999, process.Timeout); Assert.AreEqual(1, processDefault.Timeout); Assert.AreEqual(999, BucketProcessExecutor.GetDefaultTimeout()); }
/// <inheritdoc /> protected override int Execute(IInput input, IOutput output) { if (input.GetOption("list")) { return(ListScripts(output)); } string script = input.GetArgument("script"); if (string.IsNullOrEmpty(script)) { throw new RuntimeException("Missing required argument \"script\""); } var defiendEvents = new HashSet <string>(ScriptEvents.GetEvents()); var disabledScript = script.ToUpper().Replace("-", "_"); if (!defiendEvents.Contains(script) && defiendEvents.Contains(disabledScript)) { throw new RuntimeException($"Script \"{script}\" cannot be run with this command"); } var bucket = GetBucket(); var devMode = input.GetOption("dev") || !input.GetOption("no-dev"); var eventDispatcher = bucket.GetEventDispatcher(); if (!eventDispatcher.HasListener(script)) { throw new RuntimeException($"Script \"{script}\" is not defined in this package"); } string[] args = input.GetArgument("args"); string timeout = input.GetOption("timeout"); if (timeout != null) { BucketProcessExecutor.SetDefaultTimeout(int.Parse(timeout)); } var eventArgs = new ScriptEventArgs(script, bucket, GetIO(), devMode, args); eventDispatcher.Dispatch(this, eventArgs); return(eventArgs.ExitCode); }