当前位置: 首页>>代码示例>>Golang>>正文


Golang ExitHandler.Exit方法代码示例

本文整理汇总了Golang中github.com/cloudfoundry-incubator/lattice/ltc/exit_handler.ExitHandler.Exit方法的典型用法代码示例。如果您正苦于以下问题:Golang ExitHandler.Exit方法的具体用法?Golang ExitHandler.Exit怎么用?Golang ExitHandler.Exit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/cloudfoundry-incubator/lattice/ltc/exit_handler.ExitHandler的用法示例。


在下文中一共展示了ExitHandler.Exit方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: MakeCliApp

func MakeCliApp(
	diegoVersion string,
	latticeVersion string,
	ltcConfigRoot string,
	exitHandler exit_handler.ExitHandler,
	config *config.Config,
	logger lager.Logger,
	receptorClientCreator receptor_client.Creator,
	targetVerifier target_verifier.TargetVerifier,
	cliStdout io.Writer,
) *cli.App {
	config.Load()
	app := cli.NewApp()
	app.Name = AppName
	app.Author = latticeCliAuthor
	app.Version = defaultVersion(diegoVersion, latticeVersion)
	app.Usage = LtcUsage
	app.Email = "[email protected]"

	ui := terminal.NewUI(os.Stdin, cliStdout, password_reader.NewPasswordReader(exitHandler))
	app.Writer = ui

	app.Before = func(context *cli.Context) error {
		args := context.Args()
		command := app.Command(args.First())

		if command == nil {
			return nil
		}

		if _, ok := nonTargetVerifiedCommandNames[command.Name]; ok || len(args) == 0 {
			return nil
		}

		if receptorUp, authorized, err := targetVerifier.VerifyTarget(config.Receptor()); !receptorUp {
			ui.SayLine(fmt.Sprintf("Error connecting to the receptor. Make sure your lattice target is set, and that lattice is up and running.\n\tUnderlying error: %s", err.Error()))
			return err
		} else if !authorized {
			ui.SayLine("Could not authenticate with the receptor. Please run ltc target with the correct credentials.")
			return errors.New("Could not authenticate with the receptor.")
		}
		return nil
	}

	app.Action = defaultAction
	app.CommandNotFound = func(c *cli.Context, command string) {
		ui.SayLine(fmt.Sprintf(unknownCommand, command))
		exitHandler.Exit(1)
	}
	app.Commands = cliCommands(ltcConfigRoot, exitHandler, config, logger, receptorClientCreator, targetVerifier, ui)
	return app
}
开发者ID:datachand,项目名称:lattice,代码行数:52,代码来源:cli_app_factory.go

示例2:

		go exitHandler.Run()

		exitHandler.OnExit(func() {
			buffer.Write([]byte("handler1 "))
		})

		exitHandler.OnExit(func() {
			buffer.Write([]byte("handler2 "))
		})
	})

	Context("Signals", func() {
		It("Executes exit handlers on os.Interupts", func() {
			signalChan <- os.Interrupt
			Eventually(buffer).Should(gbytes.Say("handler1 handler2 Exit-Code=160"))
		})

		It("Executes exit handlers on SIGTERM", func() {
			signalChan <- syscall.SIGTERM
			Eventually(buffer).Should(gbytes.Say("handler1 handler2 Exit-Code=160"))
		})
	})

	Describe("Exit", func() {
		It("triggers a system exit after calling all the exit funcs ", func() {
			exitHandler.Exit(222)
			Eventually(buffer).Should(gbytes.Say("handler1 handler2 Exit-Code=222"))
		})
	})
})
开发者ID:davidwadden,项目名称:lattice-release,代码行数:30,代码来源:exit_handler_test.go


注:本文中的github.com/cloudfoundry-incubator/lattice/ltc/exit_handler.ExitHandler.Exit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。