-
Notifications
You must be signed in to change notification settings - Fork 35
/
serve.go
39 lines (33 loc) · 1.01 KB
/
serve.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package serve
import (
"context"
"strconv"
"github.com/matthewmueller/joy/api/serve"
"github.com/pkg/errors"
kingpin "gopkg.in/alecthomas/kingpin.v2"
)
// New build command
func New(ctx context.Context, root *kingpin.Application) {
cmd := root.Command("serve", "start a development server with livereload")
packages := cmd.Arg("packages", "packages to bundle").Required().Strings()
port := cmd.Flag("port", "port to serve from").Short('p').Default("8080").String()
// dev := cmd.Flag("dev", "generate a development build").Short('d').Bool()
joyPath := cmd.Flag("joy", "Joy state path").Hidden().String()
cmd.Action(func(_ *kingpin.ParseContext) (err error) {
port, e := strconv.Atoi(*port)
if e != nil {
return errors.Wrap(e, "invalid port")
}
// serve the files
if err := serve.Serve(&serve.Config{
Context: ctx,
Packages: *packages,
Port: port,
Development: true,
JoyPath: *joyPath,
}); err != nil {
return errors.Wrapf(err, "error serving")
}
return nil
})
}