代码拉取完成,页面将自动刷新
package dbs
import (
"gitee.com/go-better/dev/tool/x/misc/dbs/create"
"gitee.com/go-better/dev/tool/x/release"
"github.com/spf13/cobra"
)
func Cmds() []*cobra.Command {
mysqlCmd := makeCmdWithLess(`mysql`, `Enter mysql cli.`, Mysql)
mysqlCmd.AddCommand(
makeCmd(`dump`, `mysqldump to stdout.`, MysqlDump),
)
postgresCmd := makeCmdWithLess(`psql`, `Enter psql cli.`, Psql)
postgresCmd.AddCommand(makeCreateCmd(`postgres`))
return []*cobra.Command{
postgresCmd,
mysqlCmd,
makeCmd(`mongo`, `Enter mongo cli.`, Mongo),
makeCmd(`redis`, `Enter redis cli.`, Redis),
}
}
func makeCmd(name, short string, fun func(env, key string, print bool) error) *cobra.Command {
var print bool
cmd := &cobra.Command{
Use: name + ` [env [key]]`,
Short: `[db] ` + short,
RunE: release.Env1Call(func(env, key string) error {
if key == `` {
key = `default`
}
return fun(env, key, print)
}),
}
cmd.Flags().BoolVarP(&print, `print`, `p`, false, `only print the command.`)
return cmd
}
func makeCmdWithLess(name, short string, fun func(env, key string, less, print bool) error) *cobra.Command {
var less bool
var print bool
cmd := &cobra.Command{
Use: name + ` [env [key]]`,
Short: `[db] ` + short,
RunE: release.Env1Call(func(env, key string) error {
if key == `` {
key = `default`
}
return fun(env, key, less, print)
}),
}
cmd.Flags().BoolVarP(&less, `less`, `l`, false, `use less as the pager.`)
cmd.Flags().BoolVarP(&print, `print`, `p`, false, `only print the command.`)
return cmd
}
func makeCreateCmd(typ string) *cobra.Command {
var dropDB bool
cmd := &cobra.Command{
Use: `create [env [key]]`,
Short: `create databases and tables (execute "*.sql" file in "sqls" dir).`,
RunE: release.Env1Call(func(env, key string) error {
return create.Do(env, typ, key, dropDB)
}),
}
cmd.Flags().BoolVarP(&dropDB, "drop-db", "d", false, "drop existing databases before creating")
return cmd
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。