Browse Source

use custom go-bindata solution for compiling assets into the binary

Alan Shreve 12 years ago
parent
commit
a51160d372

+ 2 - 3
.gitignore

@@ -4,6 +4,5 @@ pkg/
 src/code.google.com
 src/code.google.com
 src/github.com
 src/github.com
 src/bitbucket.org
 src/bitbucket.org
-src/ngrok/client/views/web/static/*.html.go
-src/ngrok/client/views/web/static/*.css.go
-src/ngrok/client/views/web/static/*.js.go
+src/ngrok/client/assets/assets_release.go
+src/ngrok/server/assets/assets_release.go

+ 11 - 5
Makefile

@@ -1,4 +1,4 @@
-.PHONY: default server client deps fmt clean all release-client release-server release-all
+.PHONY: default server client deps fmt clean all release-client release-server release-all client-assets server-assets
 BUILDTAGS=
 BUILDTAGS=
 export GOPATH:=$(shell pwd)
 export GOPATH:=$(shell pwd)
 
 
@@ -16,13 +16,19 @@ fmt:
 client: deps
 client: deps
 	go install -tags '$(BUILDTAGS)' ngrok/main/ngrok
 	go install -tags '$(BUILDTAGS)' ngrok/main/ngrok
 
 
+client-assets:
+	go get github.com/inconshreveable/go-bindata
+	bin/go-bindata -o src/ngrok/client/assets assets/client
+
+server-assets:
+	go get github.com/inconshreveable/go-bindata
+	bin/go-bindata -o src/ngrok/server/assets assets/server
+
 release-client: BUILDTAGS=release
 release-client: BUILDTAGS=release
-release-client: client
-	./nrsc ./bin/ngrok ./assets/client
+release-client: client-assets client
 
 
 release-server: BUILDTAGS=release
 release-server: BUILDTAGS=release
-release-server: server
-	./nrsc ./bin/ngrokd ./assets/server
+release-server: server-assets server
 
 
 release-all: release-client release-server
 release-all: release-client release-server
 
 

+ 0 - 11
src/ngrok/assets/debug.go

@@ -1,11 +0,0 @@
-// +build !release
-
-package assets
-
-import (
-	"io/ioutil"
-)
-
-func ReadAsset(path string) (b []byte, err error) {
-	return ioutil.ReadFile(path)
-}

+ 0 - 28
src/ngrok/assets/release.go

@@ -1,28 +0,0 @@
-// +build release
-
-package assets
-
-import (
-	"bitbucket.org/tebeka/nrsc"
-	"fmt"
-	"io/ioutil"
-)
-
-func init() {
-	nrsc.Initialize()
-}
-
-func ReadAsset(path string) (b []byte, err error) {
-	resource := nrsc.Get(path)
-	if resource == nil {
-		err = fmt.Errorf("Asset %s not compiled into package", path)
-		return
-	}
-
-	rd, err := resource.Open()
-	if err != nil {
-		return
-	}
-
-	return ioutil.ReadAll(rd)
-}

+ 11 - 0
src/ngrok/client/assets/assets_debug.go

@@ -0,0 +1,11 @@
+// +build !release
+
+package assets
+
+import (
+	"io/ioutil"
+)
+
+func ReadAsset(name string) ([]byte, error) {
+	return ioutil.ReadFile(name)
+}

+ 1 - 1
src/ngrok/client/tls.go

@@ -4,7 +4,7 @@ import (
 	"crypto/tls"
 	"crypto/tls"
 	"crypto/x509"
 	"crypto/x509"
 	"encoding/pem"
 	"encoding/pem"
-	"ngrok/assets"
+	"ngrok/client/assets"
 )
 )
 
 
 var (
 var (

+ 1 - 1
src/ngrok/client/views/web/http.go

@@ -9,7 +9,7 @@ import (
 	"net/http"
 	"net/http"
 	"net/http/httputil"
 	"net/http/httputil"
 	"net/url"
 	"net/url"
-	"ngrok/assets"
+	"ngrok/client/assets"
 	"ngrok/client/ui"
 	"ngrok/client/ui"
 	"ngrok/log"
 	"ngrok/log"
 	"ngrok/proto"
 	"ngrok/proto"

+ 1 - 1
src/ngrok/client/views/web/view.go

@@ -5,7 +5,7 @@ import (
 	"fmt"
 	"fmt"
 	"github.com/garyburd/go-websocket/websocket"
 	"github.com/garyburd/go-websocket/websocket"
 	"net/http"
 	"net/http"
-	"ngrok/assets"
+	"ngrok/client/assets"
 	"ngrok/client/ui"
 	"ngrok/client/ui"
 	"ngrok/log"
 	"ngrok/log"
 	"ngrok/proto"
 	"ngrok/proto"

+ 11 - 0
src/ngrok/server/assets/assets_debug.go

@@ -0,0 +1,11 @@
+// +build !release
+
+package assets
+
+import (
+	"io/ioutil"
+)
+
+func ReadAsset(name string) ([]byte, error) {
+	return ioutil.ReadFile(name)
+}

+ 1 - 1
src/ngrok/server/tls.go

@@ -3,7 +3,7 @@ package server
 import (
 import (
 	"crypto/tls"
 	"crypto/tls"
 	"io/ioutil"
 	"io/ioutil"
-	"ngrok/assets"
+	"ngrok/server/assets"
 	"os"
 	"os"
 )
 )