func (a *Admin) bindAdminCommand(app *prago.App) error { adminCommand := app.CreateCommand("admin", "Admin tasks (migrate|drop|thumbnails)") adminSubcommand := adminCommand.Arg("admincommand", "").Required().String() app.AddCommand(adminCommand, func(app *prago.App) error { switch *adminSubcommand { case "migrate": println("Migrating database") err := a.Migrate(true) if err == nil { println("Migrate done") } return err case "drop": if utils.ConsoleQuestion("Really want to drop table?") { println("Dropping table") return a.UnsafeDropTables() } return nil case "thumbnails": println("Updating thumbnails") return updateFiles(a) default: println("unknown admin subcommand " + *adminSubcommand) } return nil }) return nil }
func (m MiddlewareDevelopment) Init(app *prago.App) error { app.RecoveryFunc = DevelopmentRecovery devCommand := app.CreateCommand("dev", "Development") portFlag := devCommand.Flag("port", "server port").Short('p').Default("8585").Int() developmentMode := devCommand.Flag("development", "Is in development mode").Default("t").Short('d').Bool() app.AddCommand(devCommand, func(app *prago.App) error { for _, v := range m.Settings.Less { go developmentLess(v.SourceDir, v.Target) } for _, v := range m.Settings.TypeScript { go developmentTypescript(v) } return app.ListenAndServe(*portFlag, *developmentMode) }) return nil }
//Init Mysql middleware func (m *Mysql) Init(app *prago.App) error { dbUser := app.Config.GetString("dbUser") dbPassword := app.Config.GetString("dbPassword") dbName := app.Config.GetString("dbName") db, err := ConnectMysql(dbUser, dbPassword, dbName) if err != nil { return err } app.Data()["db"] = db dumpCommand := app.CreateCommand("dump", "Dump database") app.AddCommand(dumpCommand, func(app *prago.App) error { cmd := exec.Command("mysqldump", "-u"+dbUser, "-p"+dbPassword, dbName) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr err := cmd.Start() if err != nil { panic(err) } return nil }) return nil }