Mercurial > hg > Members > anatofuz > growsync
view cmd_edit.go @ 5:af840bc25791
impl edit cmd
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 04 Dec 2020 18:27:09 +0900 |
parents | cmd_new.go@3032e9f78e4b |
children | 0b9932242273 |
line wrap: on
line source
package growsync import ( "context" "flag" "fmt" "io" "path/filepath" "time" ) type editCmd struct{} const layout string = "2006/01/02" func (pc *editCmd) name() string { return "edit" } func (pc *editCmd) description() string { return "edit from growi web app" } func (pc *editCmd) run(ctx context.Context, argv []string, config *growiConfig, stdWriter io.Writer, errorWriter io.Writer) error { fs := flag.NewFlagSet("growsync edit", flag.ContinueOnError) fs.SetOutput(errorWriter) if err := fs.Parse(argv); err != nil { return nil } var growiPATH string if fs.NArg() < 1 { growiPATH = createNewDailyMarkdownPATH(config.DailyPATH) } else { growiPATH = convertGrowiSystemPath(fs.Arg(0)) } localFilePATH := filepath.Join(config.LocalRoot, growiPATH+".md") client, err := NewGrowiClient(config.URL, config.TOKEN) if err != nil { return err } err = doEdit(localFilePATH) if err != nil { return fmt.Errorf("failed edit mardkwodn file %+v", err) } return client.UpdatePage(growiPATH, localFilePATH) } func createNewDailyMarkdownPATH(dailyPATH string) string { now := time.Now() return filepath.Join(dailyPATH, now.Format(layout)) }