Documentation ¶
Overview ¶
Package app 提供了简便的方式管理 web.Server 的运行
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type App ¶
type App interface { // Exec 运行当前程序 Exec() error // Restart 重启 // // 中止旧的 [web.Server],再启动一个新的 [web.Server] 对象。 // // NOTE: 如果执行过程中出错,应该尽量阻止旧对象被中止,保证最大限度地可用状态。 Restart() }
App web.Server 的管理接口
func NewCLI ¶ added in v0.92.0
func NewCLI[T comparable](o *CLIOptions[T]) App
NewCLI 提供一种简单的命令行生成方式
生成的命令行带以下几个参数:
- -v 显示版本号;
- -h 显示帮助信息;
- -a 执行的指令,该值会传递给 [CLIOptions.NewServer],由用户根据此值决定初始化方式;
T 表示的是配置文件中的用户自定义数据类型,可参考 config.Load 中有关 User 的说明。
如果是 CLIOptions 本身字段设置有问题会直接 panic。
type CLIOptions ¶ added in v0.92.0
type CLIOptions[T any] struct { ID string // 程序 ID Version string // 程序版本 // 初始化 [web.Server] // // id, version 即为 [CLIOptions.ID] 和 [CLIOptions.Version]; // o 和 user 为从配置文件加载的数据信息; // action 为 -a 命令行指定的参数; NewServer func(id, version string, o *server.Options, user T, action string) (web.Server, error) // 以服务运行的指令 ServeActions []string // 命令行输出信息的通道 // // 默认为 [os.Stdout]。 Out io.Writer // 配置文件所在的目录 // // 有以下几种前缀用于指定不同的保存目录: // - ~ 表示系统提供的配置文件目录,比如 Linux 的 XDG_CONFIG、Windows 的 AppData 等; // - @ 表示当前程序的主目录; // - ^ 表示绝对路径; // - # 表示工作路径; // - 其它则是直接采用 [config.Dir] 初始化。 // 如果为空则采用 [server.DefaultConfigDir] 中指定的值。 // // NOTE: 具体说明可参考 [config.BuildDir] 的 dir 参数。 ConfigDir string // 配置文件的文件名 // // 相对于 ConfigDir 的文件名,不能为空。 // // 需要保证序列化方法已经由 [config.RegisterFileSerializer] 注册; ConfigFilename string // 本地化的打印对象 // // 若为空,则以 config.NewPrinter("*.yaml", locales.Locales) 进行初始化。 // // 若是自定义,至少需要保证以下几个字符串的翻译项,才有效果: // - cmd.show_version // - cmd.action // - cmd.show_help // - can not be empty // // NOTE: 此设置仅影响命令行的本地化,[web.Server] 的本地化由其自身管理。 Printer *message.Printer // 每次关闭服务操作的等待时间 ShutdownTimeout time.Duration // 在命令行解析出错时的处理方式 // // 默认值为 [flag.ContinueOnError] ErrorHandling flag.ErrorHandling }
Click to show internal directories.
Click to hide internal directories.