forked from tildetown/town
WIP
parent
122af44a9e
commit
571c37b089
|
@ -3,15 +3,16 @@ package main
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/AlecAivazis/survey/v2"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
submitOp = "submit"
|
submitOp = "submit"
|
||||||
delOp = "del"
|
delOp = "del"
|
||||||
updateOp = "update"
|
updateOp = "update"
|
||||||
dbpath = "/town/var/commands.db"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ContribOptions struct {
|
type ContribOptions struct {
|
||||||
|
@ -36,10 +37,50 @@ func runContrib(opts *ContribOptions) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func submit(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 create pending row
|
||||||
// TODO email me
|
// TODO email me
|
||||||
// TODO print confirmation
|
// TODO print confirmation
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
go.mod
11
go.mod
|
@ -8,3 +8,14 @@ require (
|
||||||
github.com/spf13/cobra v1.5.0
|
github.com/spf13/cobra v1.5.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
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.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||||
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
|
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-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 h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
|
||||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
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=
|
github.com/microcosm-cc/bluemonday v1.0.17 h1:Z1a//hgsQ4yjC+8zEkV8IWySkXnsxmdSY642CTFQb5Y=
|
||||||
|
|
Loading…
Reference in New Issue