forked from tildetown/town
WIP
parent
122af44a9e
commit
571c37b089
|
@ -3,15 +3,16 @@ package main
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"github.com/spf13/cobra"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
const (
|
||||
submitOp = "submit"
|
||||
delOp = "del"
|
||||
updateOp = "update"
|
||||
dbpath = "/town/var/commands.db"
|
||||
)
|
||||
|
||||
type ContribOptions struct {
|
||||
|
@ -36,10 +37,50 @@ func runContrib(opts *ContribOptions) error {
|
|||
}
|
||||
|
||||
func submit(opts *ContribOptions) error {
|
||||
// TODO run survey
|
||||
var cmdName string
|
||||
var category string
|
||||
var shortDescription string
|
||||
var longDescription string
|
||||
|
||||
_, defaultName := filepath.Split(opts.ExecPath)
|
||||
if err := survey.AskOne(&survey.Input{
|
||||
Message: "New command's name:",
|
||||
Default: defaultName}, &cmdName); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
categories := []string{
|
||||
"art",
|
||||
"social",
|
||||
"game",
|
||||
"utility",
|
||||
"misc",
|
||||
}
|
||||
var choice int
|
||||
if err := survey.AskOne(&survey.Select{
|
||||
Message: "what category should this command be filed under?",
|
||||
Options: categories,
|
||||
}, &choice); err != nil {
|
||||
return err
|
||||
}
|
||||
category = categories[choice]
|
||||
fmt.Printf("DBG %#v\n", category)
|
||||
|
||||
if err := survey.AskOne(&survey.Input{
|
||||
Message: "What's a one line description of this command?",
|
||||
}, &shortDescription); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := survey.AskOne(&survey.Editor{
|
||||
Message: "Write a long description for this command. Try to include examples. If the short description is enough, you can just leave it blank though. Really it's whatever you want. I donno"}, &longDescription); err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO create pending row
|
||||
// TODO email me
|
||||
// TODO print confirmation
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
11
go.mod
11
go.mod
|
@ -8,3 +8,14 @@ require (
|
|||
github.com/spf13/cobra v1.5.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/mattn/go-colorable v0.1.2 // indirect
|
||||
github.com/mattn/go-isatty v0.0.13 // indirect
|
||||
github.com/mattn/go-sqlite3 v1.14.14 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
||||
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 // indirect
|
||||
golang.org/x/term v0.0.0-20210503060354-a79de5458b56 // indirect
|
||||
golang.org/x/text v0.3.6 // indirect
|
||||
)
|
||||
|
|
2
go.sum
2
go.sum
|
@ -35,6 +35,8 @@ github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m
|
|||
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
|
||||
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw=
|
||||
github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/microcosm-cc/bluemonday v1.0.17 h1:Z1a//hgsQ4yjC+8zEkV8IWySkXnsxmdSY642CTFQb5Y=
|
||||
|
|
Loading…
Reference in New Issue