mirror of
https://github.com/mmatczuk/go-http-tunnel.git
synced 2026-05-15 14:16:17 -06:00
commit
40d575f1e4
9 changed files with 79 additions and 8 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1,3 +1,6 @@
|
|||
### Release
|
||||
build
|
||||
|
||||
### GO
|
||||
*.cov
|
||||
*.prof
|
||||
|
|
@ -18,4 +21,3 @@ Session.vim
|
|||
*~
|
||||
# auto-generated tag files
|
||||
tags
|
||||
|
||||
|
|
|
|||
|
|
@ -13,15 +13,10 @@ addons:
|
|||
- moreutils
|
||||
|
||||
before_install:
|
||||
- go get -u github.com/golang/lint/golint
|
||||
- go get -u github.com/golang/mock/gomock
|
||||
- make devtools
|
||||
|
||||
install:
|
||||
- go get -d ./...
|
||||
- go build ./...
|
||||
|
||||
script:
|
||||
- gofmt -s -l . | ifne false
|
||||
- go vet ./...
|
||||
- $HOME/gopath/bin/golint ./...
|
||||
- go test -race ./...
|
||||
- make check
|
||||
|
|
|
|||
48
Makefile
Normal file
48
Makefile
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
OUTPUT_DIR = build
|
||||
OS = "darwin freebsd linux windows"
|
||||
ARCH = "amd64 arm"
|
||||
OSARCH = "!darwin/arm !windows/arm"
|
||||
|
||||
GIT_COMMIT = $(shell git describe --always)
|
||||
|
||||
all: check
|
||||
|
||||
.PHONY: check
|
||||
check:
|
||||
gofmt -s -l . | ifne false
|
||||
go vet ./...
|
||||
golint ./...
|
||||
go build ./...
|
||||
go test -race ./...
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
go clean ./...
|
||||
rm -rf ${OUTPUT_DIR}
|
||||
|
||||
.PHONY: devtools
|
||||
devtools:
|
||||
go get -u github.com/golang/lint/golint
|
||||
go get -u github.com/golang/mock/gomock
|
||||
go get -u github.com/mitchellh/gox
|
||||
go get -u github.com/tcnksm/ghr
|
||||
|
||||
.PHONY: release
|
||||
release: clean check build package publish
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
mkdir ${OUTPUT_DIR}
|
||||
GOARM=5 gox -ldflags "-X main.version=$(GIT_COMMIT)" \
|
||||
-os=${OS} -arch=${ARCH} -osarch=${OSARCH} -output "${OUTPUT_DIR}/pkg/{{.OS}}_{{.Arch}}/{{.Dir}}" \
|
||||
./cmd/tunnel ./cmd/tunneld
|
||||
|
||||
.PHONY: package
|
||||
package:
|
||||
mkdir ${OUTPUT_DIR}/dist
|
||||
cd ${OUTPUT_DIR}/pkg/; for osarch in *; do (cd $$osarch; tar zcvf ../../dist/tunnel_$$osarch.tar.gz ./*); done;
|
||||
cd ${OUTPUT_DIR}/dist; sha256sum * > ./SHA256SUMS
|
||||
|
||||
.PHONY: publish
|
||||
publish:
|
||||
ghr -recreate -u mmatczuk -t ${GITHUB_TOKEN} -r go-http-tunnel pre-release ${OUTPUT_DIR}/dist
|
||||
|
|
@ -51,6 +51,7 @@ type options struct {
|
|||
config string
|
||||
logTo string
|
||||
logLevel int
|
||||
version bool
|
||||
command string
|
||||
args []string
|
||||
}
|
||||
|
|
@ -60,6 +61,7 @@ func parseArgs() (*options, error) {
|
|||
config := flag.String("config", filepath.Join(defaultPath(), "config.yaml"), "Path to tunnel configuration file")
|
||||
logTo := flag.String("log", "stdout", "Write log messages to this file, file name or 'stdout', 'stderr', 'none'")
|
||||
logLevel := flag.Int("log-level", 1, "Level of messages to log, 0-3")
|
||||
version := flag.Bool("version", false, "Prints tunnel version")
|
||||
flag.Parse()
|
||||
|
||||
opts := &options{
|
||||
|
|
@ -67,9 +69,14 @@ func parseArgs() (*options, error) {
|
|||
config: *config,
|
||||
logTo: *logTo,
|
||||
logLevel: *logLevel,
|
||||
version: *version,
|
||||
command: flag.Arg(0),
|
||||
}
|
||||
|
||||
if opts.version {
|
||||
return opts, nil
|
||||
}
|
||||
|
||||
switch opts.command {
|
||||
case "list":
|
||||
opts.args = flag.Args()[1:]
|
||||
|
|
|
|||
|
|
@ -23,6 +23,11 @@ func main() {
|
|||
fatal(err.Error())
|
||||
}
|
||||
|
||||
if opts.version {
|
||||
fmt.Println(version)
|
||||
return
|
||||
}
|
||||
|
||||
if opts.debug {
|
||||
if err := agent.Listen(nil); err != nil {
|
||||
fatal("gops agent failed to start: %s", err)
|
||||
|
|
|
|||
3
cmd/tunnel/version.go
Normal file
3
cmd/tunnel/version.go
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
package main
|
||||
|
||||
var version = "snapshot"
|
||||
|
|
@ -28,6 +28,7 @@ type options struct {
|
|||
clients string
|
||||
logTo string
|
||||
logLevel int
|
||||
version bool
|
||||
}
|
||||
|
||||
func parseArgs() *options {
|
||||
|
|
@ -40,6 +41,7 @@ func parseArgs() *options {
|
|||
clients := flag.String("clients", "", "Comma-separated list of tunnel client ids")
|
||||
logTo := flag.String("log", "stdout", "Write log messages to this file, file name or 'stdout', 'stderr', 'none'")
|
||||
logLevel := flag.Int("log-level", 1, "Level of messages to log, 0-3")
|
||||
version := flag.Bool("version", false, "Prints tunneld version")
|
||||
flag.Parse()
|
||||
|
||||
return &options{
|
||||
|
|
@ -52,5 +54,6 @@ func parseArgs() *options {
|
|||
clients: *clients,
|
||||
logTo: *logTo,
|
||||
logLevel: *logLevel,
|
||||
version: *version,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,11 @@ import (
|
|||
func main() {
|
||||
opts := parseArgs()
|
||||
|
||||
if opts.version {
|
||||
fmt.Println(version)
|
||||
return
|
||||
}
|
||||
|
||||
if opts.debug {
|
||||
if err := agent.Listen(nil); err != nil {
|
||||
fatal("gops agent failed to start: %s", err)
|
||||
|
|
|
|||
3
cmd/tunneld/version.go
Normal file
3
cmd/tunneld/version.go
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
package main
|
||||
|
||||
var version = "snapshot"
|
||||
Loading…
Add table
Add a link
Reference in a new issue