go fmt
This commit is contained in:
parent
db6d5afb09
commit
5f5d0541e1
6
Makefile
6
Makefile
|
@ -9,6 +9,10 @@ all: $(BINARY)
|
||||||
clean:
|
clean:
|
||||||
rm -f $(BINARY) $(ROUTE_ASSET) $(ROUTE_FILES)
|
rm -f $(BINARY) $(ROUTE_ASSET) $(ROUTE_FILES)
|
||||||
|
|
||||||
|
fmt: $(SOURCE) $(SCHEMA_ASSET) $(ROUTE_ASSET)
|
||||||
|
find . -type f -name "*.go" -printf "%h\n"|sort -u|xargs go fmt
|
||||||
|
go tool vet -composites=false .
|
||||||
|
|
||||||
$(BINARY): $(SOURCE) $(ROUTE_ASSET)
|
$(BINARY): $(SOURCE) $(ROUTE_ASSET)
|
||||||
go build
|
go build
|
||||||
|
|
||||||
|
@ -35,5 +39,5 @@ public/style.css: assets/*.css
|
||||||
deploy:
|
deploy:
|
||||||
cd debian && make && make deploy
|
cd debian && make && make deploy
|
||||||
|
|
||||||
.PHONEY: clean deploy
|
.PHONEY: clean deploy fmt
|
||||||
|
|
||||||
|
|
12
config.go
12
config.go
|
@ -1,17 +1,17 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/spf13/viper"
|
|
||||||
"github.com/docopt/docopt.go"
|
|
||||||
"sour.is/x/log"
|
|
||||||
"sour.is/x/httpsrv"
|
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/docopt/docopt.go"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
"sour.is/x/httpsrv"
|
||||||
|
"sour.is/x/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
APP_VERSION string
|
APP_VERSION string
|
||||||
APP_BUILD string
|
APP_BUILD string
|
||||||
)
|
)
|
||||||
var APP_NAME string = "Paste API"
|
var APP_NAME string = "Paste API"
|
||||||
var APP_USAGE string = `Paste API
|
var APP_USAGE string = `Paste API
|
||||||
|
@ -51,7 +51,7 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
viper.SetConfigName("config")
|
viper.SetConfigName("config")
|
||||||
if args["--config"] != nil{
|
if args["--config"] != nil {
|
||||||
viper.AddConfigPath(args["--config"].(string))
|
viper.AddConfigPath(args["--config"].(string))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
6
main.go
6
main.go
|
@ -27,9 +27,9 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"sour.is/x/httpsrv"
|
"sour.is/x/httpsrv"
|
||||||
//_ "sour.is/x/httpsrv/routes"
|
//_ "sour.is/x/httpsrv/routes"
|
||||||
_ "sour.is/x/paste/routes"
|
_ "sour.is/x/paste/routes"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
103
routes/paste.go
103
routes/paste.go
|
@ -1,20 +1,20 @@
|
||||||
package routes
|
package routes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"sour.is/x/httpsrv"
|
|
||||||
"encoding/json"
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"io/ioutil"
|
|
||||||
"io"
|
|
||||||
"sour.is/x/log"
|
|
||||||
"os"
|
|
||||||
"golang.org/x/sys/unix"
|
|
||||||
"crypto/rand"
|
|
||||||
"strconv"
|
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"crypto/rand"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"sour.is/x/httpsrv"
|
||||||
|
"sour.is/x/log"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -26,23 +26,23 @@ func init() {
|
||||||
httpsrv.RegisterModule("paste", setConfig)
|
httpsrv.RegisterModule("paste", setConfig)
|
||||||
|
|
||||||
httpsrv.HttpRegister("paste", httpsrv.HttpRoutes{
|
httpsrv.HttpRegister("paste", httpsrv.HttpRoutes{
|
||||||
{ "getRandom", "GET", "/paste/rng", getRandom, },
|
{"getRandom", "GET", "/paste/rng", getRandom},
|
||||||
{ "getPaste", "GET", "/paste/{id}", getPaste, },
|
{"getPaste", "GET", "/paste/{id}", getPaste},
|
||||||
{ "getPaste", "GET", "/paste/get/{id}", getPaste, },
|
{"getPaste", "GET", "/paste/get/{id}", getPaste},
|
||||||
{ "postPaste", "POST", "/paste", postPaste, },
|
{"postPaste", "POST", "/paste", postPaste},
|
||||||
|
|
||||||
{ "getRandom", "GET", "/api/rng", getRandom, },
|
{"getRandom", "GET", "/api/rng", getRandom},
|
||||||
{ "getPaste", "GET", "/api/{id}", getPaste, },
|
{"getPaste", "GET", "/api/{id}", getPaste},
|
||||||
{ "getPaste", "GET", "/api/get/{id}", getPaste, },
|
{"getPaste", "GET", "/api/get/{id}", getPaste},
|
||||||
{ "postPaste", "POST", "/api", postPaste, },
|
{"postPaste", "POST", "/api", postPaste},
|
||||||
})
|
})
|
||||||
|
|
||||||
httpsrv.AssetRegister("paste", httpsrv.AssetRoutes{
|
httpsrv.AssetRegister("paste", httpsrv.AssetRoutes{
|
||||||
{ "Assets", "/", httpsrv.FsHtml5( assetFS() ) },
|
{"Assets", "/", httpsrv.FsHtml5(assetFS())},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func setConfig (config map[string]string) {
|
func setConfig(config map[string]string) {
|
||||||
|
|
||||||
store = "data/"
|
store = "data/"
|
||||||
if config["store"] != "" {
|
if config["store"] != "" {
|
||||||
|
@ -63,28 +63,48 @@ func setConfig (config map[string]string) {
|
||||||
|
|
||||||
func chkStore(path string) bool {
|
func chkStore(path string) bool {
|
||||||
file, err := os.Stat(path)
|
file, err := os.Stat(path)
|
||||||
if err == nil { return true }
|
if err == nil {
|
||||||
if os.IsNotExist(err) { return false }
|
return true
|
||||||
if !file.IsDir() { return false }
|
}
|
||||||
if unix.Access(path, unix.W_OK & unix.R_OK) != nil { return false }
|
if os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if !file.IsDir() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if unix.Access(path, unix.W_OK&unix.R_OK) != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func chkFile(path string) bool {
|
func chkFile(path string) bool {
|
||||||
file, err := os.Stat(path)
|
file, err := os.Stat(path)
|
||||||
if err == nil { return true }
|
if err == nil {
|
||||||
if os.IsNotExist(err) { return false }
|
return true
|
||||||
if file.IsDir() { return false }
|
}
|
||||||
if unix.Access(path, unix.W_OK & unix.R_OK) != nil { return false }
|
if os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if file.IsDir() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if unix.Access(path, unix.W_OK&unix.R_OK) != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func chkGone(path string) bool {
|
func chkGone(path string) bool {
|
||||||
file, err := os.Stat(path)
|
file, err := os.Stat(path)
|
||||||
if err != nil { return true }
|
if err != nil {
|
||||||
if file.Size() == 0 { return true }
|
return true
|
||||||
|
}
|
||||||
|
if file.Size() == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +112,7 @@ func getRandom(w http.ResponseWriter, r *http.Request) {
|
||||||
s := make([]byte, randBytes)
|
s := make([]byte, randBytes)
|
||||||
rand.Read(s)
|
rand.Read(s)
|
||||||
|
|
||||||
w.Header().Set("content-type","application/octet-stream")
|
w.Header().Set("content-type", "application/octet-stream")
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
w.Write(s)
|
w.Write(s)
|
||||||
}
|
}
|
||||||
|
@ -102,22 +122,21 @@ func getPaste(w http.ResponseWriter, r *http.Request) {
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
id := vars["id"]
|
id := vars["id"]
|
||||||
|
|
||||||
|
|
||||||
if !chkFile(store + id) {
|
if !chkFile(store + id) {
|
||||||
w.WriteHeader(http.StatusNotFound)
|
w.WriteHeader(http.StatusNotFound)
|
||||||
w.Write([]byte("ERR Not Found"))
|
w.Write([]byte("ERR Not Found"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if chkGone(store + id) {
|
if chkGone(store + id) {
|
||||||
w.WriteHeader(http.StatusGone)
|
w.WriteHeader(http.StatusGone)
|
||||||
w.Write([]byte("ERR Gone"))
|
w.Write([]byte("ERR Gone"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
head, err := os.Open(store + id)
|
head, err := os.Open(store + id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
defer head.Close()
|
defer head.Close()
|
||||||
|
|
||||||
|
@ -127,7 +146,7 @@ func getPaste(w http.ResponseWriter, r *http.Request) {
|
||||||
txt := scanner.Text()
|
txt := scanner.Text()
|
||||||
log.Debug(txt)
|
log.Debug(txt)
|
||||||
|
|
||||||
if (txt == "") {
|
if txt == "" {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +202,7 @@ func postPaste(w http.ResponseWriter, r *http.Request) {
|
||||||
s256 := sha256.Sum256(body)
|
s256 := sha256.Sum256(body)
|
||||||
id := base64.RawURLEncoding.EncodeToString(s256[12:])
|
id := base64.RawURLEncoding.EncodeToString(s256[12:])
|
||||||
|
|
||||||
ioutil.WriteFile(store + id, body, 0644)
|
ioutil.WriteFile(store+id, body, 0644)
|
||||||
|
|
||||||
w.WriteHeader(http.StatusCreated)
|
w.WriteHeader(http.StatusCreated)
|
||||||
w.Write([]byte("OK " + id))
|
w.Write([]byte("OK " + id))
|
||||||
|
@ -194,7 +213,7 @@ func postPaste(w http.ResponseWriter, r *http.Request) {
|
||||||
func checkErr(err error, w http.ResponseWriter) {
|
func checkErr(err error, w http.ResponseWriter) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
json.NewEncoder(w).Encode(err);
|
json.NewEncoder(w).Encode(err)
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user