Skip to content

Commit

Permalink
move to an internal packge for now
Browse files Browse the repository at this point in the history
  • Loading branch information
syntaqx committed Jan 15, 2019
1 parent 2d39327 commit 6dd55ce
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
builds:
- main: cmd/serve/*.go
- main: cmd/serve/main.go
binary: serve
goos:
- windows
Expand Down
14 changes: 5 additions & 9 deletions cmd/serve/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,14 @@ import (
"flag"
"log"
"os"

"github.com/syntaqx/serve/internal"
)

var version = "0.0.0-develop"

type flags struct {
Host string
Port int
Dir string
}

func main() {
var opt flags
var opt internal.Flags
flag.StringVar(&opt.Host, "host", "", "host address to bind to")
flag.IntVar(&opt.Port, "port", 8080, "listening port")
flag.StringVar(&opt.Dir, "dir", "", "directory to serve")
Expand All @@ -27,10 +23,10 @@ func main() {
var err error
switch cmd := flag.Arg(0); cmd {
case "version":
err = VersionCommand(os.Stderr)
err = internal.VersionCommand(version, os.Stderr)
default:
opt.Dir = sanitizeDirFlagArg(opt.Dir, cmd)
err = ServerCommand(log, opt)
err = internal.ServerCommand(log, opt)
}

if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions cmd/serve/commands.go → internal/commands.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package internal

import (
"fmt"
Expand All @@ -13,13 +13,13 @@ import (

// VersionCommand implements the command `version` which outputs the current
// binary release version, if any.
func VersionCommand(w io.Writer) error {
func VersionCommand(version string, w io.Writer) error {
fmt.Fprintf(w, fmt.Sprintf("serve version %s %s/%s\n", version, runtime.GOOS, runtime.GOARCH))
return nil
}

// ServerCommand implements the static http server command.
func ServerCommand(log *log.Logger, opt flags) error {
func ServerCommand(log *log.Logger, opt Flags) error {
r := NewRouter(log, opt)

server := &http.Server{
Expand Down
11 changes: 5 additions & 6 deletions cmd/serve/commands_test.go → internal/commands_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package main
package internal

import (
"bytes"
"fmt"
"log"
"net/http"
"testing"
Expand All @@ -16,10 +15,10 @@ func TestVersionCommand(t *testing.T) {
assert := assert.New(t)

var b bytes.Buffer
err := VersionCommand(&b)
err := VersionCommand("mock", &b)

assert.NoError(err)
assert.Contains(b.String(), fmt.Sprintf("version %s", version))
assert.Contains(b.String(), "version mock")
}

func TestServerCommand(t *testing.T) {
Expand All @@ -28,7 +27,7 @@ func TestServerCommand(t *testing.T) {

var b bytes.Buffer
log := log.New(&b, "[test] ", 0)
opt := flags{Port: 0}
opt := Flags{Port: 0}

go func() {
assert.NoError(ServerCommand(log, opt))
Expand All @@ -43,7 +42,7 @@ func TestServerCommandErr(t *testing.T) {

var b bytes.Buffer
log := log.New(&b, "[test] ", 8888)
opt := flags{Port: 8888}
opt := Flags{Port: 8888}

go func() {
_ = http.ListenAndServe(":8888", nil)
Expand Down
8 changes: 8 additions & 0 deletions internal/flags.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package internal

// Flags are the expose configuration flags available to the serve binary.
type Flags struct {
Host string
Port int
Dir string
}
2 changes: 1 addition & 1 deletion cmd/serve/middleware.go → internal/middleware.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package internal

import (
"log"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package internal

import (
"bytes"
Expand Down
4 changes: 2 additions & 2 deletions cmd/serve/router.go → internal/router.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package main
package internal

import (
"log"
"net/http"
)

// NewRouter returns a new http.Handler for routing
func NewRouter(log *log.Logger, opt flags) http.Handler {
func NewRouter(log *log.Logger, opt Flags) http.Handler {
r := http.NewServeMux()

// Handler, wrapped with middleware
Expand Down
4 changes: 2 additions & 2 deletions cmd/serve/router_test.go → internal/router_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main
package internal

import (
"bytes"
Expand All @@ -12,7 +12,7 @@ func TestNewRouter(t *testing.T) {

var b bytes.Buffer
log := log.New(&b, "[test] ", 0)
opt := flags{Port: 0}
opt := Flags{Port: 0}

r := NewRouter(log, opt)

Expand Down

0 comments on commit 6dd55ce

Please sign in to comment.