func catFile(ctx *app.Context) { var id string ctx.MustParseIndexValue(0, &id) f, err := ctx.Blobstore().Open(id) if err != nil { panic(err) } defer f.Close() var meta bool ctx.ParseParamValue("meta", &meta) if meta { var m interface{} if err := f.GetMeta(&m); err != nil { panic(err) } fmt.Println(m) } else { io.Copy(os.Stdout, f) } }
func renderTemplate(ctx *app.Context) { var template string ctx.MustParseIndexValue(0, &template) tmpl, err := ctx.App().LoadTemplate(template) if err != nil { panic(err) } var buf bytes.Buffer if err := tmpl.ExecuteTo(&buf, ctx, nil); err != nil { panic(err) } var output string ctx.ParseParamValue("o", &output) if output == "" || output == "-" { fmt.Print(buf.String()) } else { if err := ioutil.WriteFile(output, buf.Bytes(), 0644); err != nil { panic(err) } } }
func registerUser(ctx *app.Context) { username := ctx.RequireIndexValue(0) userVal, _ := newEmptyUser(ctx) updating := false if ctx.Orm().MustOne(ByUsername(username), userVal.Interface()) { // Updating existing user updating = true } else { // Creating a new one userVal = newUser(ctx, username) } var askPassword bool ctx.ParseParamValue("p", &askPassword) if !updating || askPassword { password1, err := speakeasy.Ask("Password:"******"Confirm Password:"******"passwords don't match")) } setUserValue(userVal, "Password", password.New(password1)) } var admin bool ctx.ParseParamValue("s", &admin) setUserValue(userVal, "Admin", admin) var email string ctx.ParseParamValue("e", &email) if email != "" { setUserValue(userVal, "Email", email) } ctx.Orm().MustSave(userVal.Interface()) ctx.Logger().Infof("saved user as %+v", userVal.Interface()) }