mirror of
https://github.com/XRPLF/clio.git
synced 2025-12-06 17:27:58 +00:00
style: Apply go fmt to go code (#2046)
~I will add pre-commit hook later if I find a good one~ Found a nice repo, but it is no longer maintained: https://github.com/dnephin/pre-commit-golang So, I implemented the check as a local hook.
This commit is contained in:
@@ -30,3 +30,12 @@ repos:
|
|||||||
hooks:
|
hooks:
|
||||||
- id: prettier
|
- id: prettier
|
||||||
exclude: ^docs/doxygen-awesome-theme/
|
exclude: ^docs/doxygen-awesome-theme/
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: gofmt
|
||||||
|
name: Go Format
|
||||||
|
entry: pre-commit-hooks/run-go-fmt.sh
|
||||||
|
types: [go]
|
||||||
|
language: golang
|
||||||
|
description: "Runs `gofmt`, requires golang"
|
||||||
|
|||||||
14
pre-commit-hooks/run-go-fmt.sh
Executable file
14
pre-commit-hooks/run-go-fmt.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Capture and print stdout, since gofmt doesn't use proper exit codes
|
||||||
|
#
|
||||||
|
set -e -o pipefail
|
||||||
|
|
||||||
|
if ! command -v gofmt &> /dev/null ; then
|
||||||
|
echo "gofmt not installed or available in the PATH" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
output="$(gofmt -l -w "$@")"
|
||||||
|
echo "$output"
|
||||||
|
[[ -z "$output" ]]
|
||||||
@@ -8,22 +8,22 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type AmmoProvider struct {
|
type AmmoProvider struct {
|
||||||
ammo []string
|
ammo []string
|
||||||
currentBullet atomic.Uint64
|
currentBullet atomic.Uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ap *AmmoProvider) getIndex() uint64 {
|
func (ap *AmmoProvider) getIndex() uint64 {
|
||||||
result := ap.currentBullet.Add(1)
|
result := ap.currentBullet.Add(1)
|
||||||
return result % uint64(len(ap.ammo))
|
return result % uint64(len(ap.ammo))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ap *AmmoProvider) GetBullet() string {
|
func (ap *AmmoProvider) GetBullet() string {
|
||||||
for {
|
for {
|
||||||
res := ap.ammo[ap.getIndex()]
|
res := ap.ammo[ap.getIndex()]
|
||||||
if !strings.HasPrefix(res, "#") {
|
if !strings.HasPrefix(res, "#") {
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(reader io.Reader) *AmmoProvider {
|
func New(reader io.Reader) *AmmoProvider {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CliArgs struct {
|
type CliArgs struct {
|
||||||
Host string
|
Host string
|
||||||
Port uint
|
Port uint
|
||||||
TargetLoad uint
|
TargetLoad uint
|
||||||
Ammo string
|
Ammo string
|
||||||
@@ -23,7 +23,7 @@ func Parse() (*CliArgs, error) {
|
|||||||
target_load := flag.UintP("load", "l", 100, "Target requests per second load")
|
target_load := flag.UintP("load", "l", 100, "Target requests per second load")
|
||||||
print_errors := flag.BoolP("print-errors", "e", false, "Print errors")
|
print_errors := flag.BoolP("print-errors", "e", false, "Print errors")
|
||||||
help := flag.BoolP("help", "h", false, "Print help message")
|
help := flag.BoolP("help", "h", false, "Print help message")
|
||||||
ws := flag.BoolP("ws", "w", false, "Use websocket")
|
ws := flag.BoolP("ws", "w", false, "Use websocket")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/gorilla/websocket"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"github.com/gorilla/websocket"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type RequestMaker interface {
|
type RequestMaker interface {
|
||||||
@@ -17,11 +17,11 @@ type RequestMaker interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type WebSocketClient struct {
|
type WebSocketClient struct {
|
||||||
conn *websocket.Conn
|
conn *websocket.Conn
|
||||||
}
|
}
|
||||||
|
|
||||||
type HttpRequestMaker struct {
|
type HttpRequestMaker struct {
|
||||||
host string
|
host string
|
||||||
transport *http.Transport
|
transport *http.Transport
|
||||||
client *http.Client
|
client *http.Client
|
||||||
}
|
}
|
||||||
@@ -38,10 +38,10 @@ type ResponseData struct {
|
|||||||
|
|
||||||
func (h *HttpRequestMaker) MakeRequest(request string) (*ResponseData, error) {
|
func (h *HttpRequestMaker) MakeRequest(request string) (*ResponseData, error) {
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
req, err := http.NewRequest("POST", h.host, strings.NewReader(request))
|
req, err := http.NewRequest("POST", h.host, strings.NewReader(request))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("Error creating request: " + err.Error())
|
return nil, errors.New("Error creating request: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
response, err := h.client.Do(req)
|
response, err := h.client.Do(req)
|
||||||
requestDuration := time.Since(startTime)
|
requestDuration := time.Since(startTime)
|
||||||
@@ -80,12 +80,12 @@ func NewHttp(host string, port uint) *HttpRequestMaker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewWebSocketClient(host string, port uint) (*WebSocketClient, error) {
|
func NewWebSocketClient(host string, port uint) (*WebSocketClient, error) {
|
||||||
var u url.URL
|
var u url.URL
|
||||||
if !strings.HasPrefix(host, "ws://") && !strings.HasPrefix(host, "wss://") {
|
if !strings.HasPrefix(host, "ws://") && !strings.HasPrefix(host, "wss://") {
|
||||||
u = url.URL{Scheme: "ws", Host: host + ":" + fmt.Sprintf("%d", port), Path: "/"}
|
u = url.URL{Scheme: "ws", Host: host + ":" + fmt.Sprintf("%d", port), Path: "/"}
|
||||||
} else {
|
} else {
|
||||||
u = url.URL{Host: host + ":" + fmt.Sprintf("%d", port), Path: "/"}
|
u = url.URL{Host: host + ":" + fmt.Sprintf("%d", port), Path: "/"}
|
||||||
}
|
}
|
||||||
conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
|
conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("Error connecting to WebSocket: " + err.Error())
|
return nil, errors.New("Error connecting to WebSocket: " + err.Error())
|
||||||
@@ -95,24 +95,24 @@ func NewWebSocketClient(host string, port uint) (*WebSocketClient, error) {
|
|||||||
|
|
||||||
// SendMessage sends a message to the WebSocket server
|
// SendMessage sends a message to the WebSocket server
|
||||||
func (ws *WebSocketClient) SendMessage(message string) (*ResponseData, error) {
|
func (ws *WebSocketClient) SendMessage(message string) (*ResponseData, error) {
|
||||||
defer ws.conn.Close()
|
defer ws.conn.Close()
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
err := ws.conn.WriteMessage(websocket.TextMessage, []byte(message))
|
err := ws.conn.WriteMessage(websocket.TextMessage, []byte(message))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("Error sending ws message: " + err.Error())
|
return nil, errors.New("Error sending ws message: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
var msg []byte
|
var msg []byte
|
||||||
err = ws.conn.SetReadDeadline(time.Now().Add(5 * time.Second))
|
err = ws.conn.SetReadDeadline(time.Now().Add(5 * time.Second))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("Error setting timeout: " + err.Error())
|
return nil, errors.New("Error setting timeout: " + err.Error())
|
||||||
}
|
}
|
||||||
_, msg, err = ws.conn.ReadMessage()
|
_, msg, err = ws.conn.ReadMessage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("Error reading message: " + err.Error())
|
return nil, errors.New("Error reading message: " + err.Error())
|
||||||
}
|
}
|
||||||
requestDuration := time.Since(start)
|
requestDuration := time.Since(start)
|
||||||
ws.conn.Close()
|
ws.conn.Close()
|
||||||
|
|
||||||
var response JsonMap
|
var response JsonMap
|
||||||
err = json.Unmarshal(msg, &response)
|
err = json.Unmarshal(msg, &response)
|
||||||
|
|||||||
@@ -10,25 +10,25 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
args, err := parse_args.Parse()
|
args, err := parse_args.Parse()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "Error: ", err)
|
fmt.Fprintln(os.Stderr, "Error: ", err)
|
||||||
parse_args.PrintUsage()
|
parse_args.PrintUsage()
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if args.Help {
|
if args.Help {
|
||||||
parse_args.PrintUsage()
|
parse_args.PrintUsage()
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Print("Loading ammo... ")
|
fmt.Print("Loading ammo... ")
|
||||||
f, err := os.Open(args.Ammo)
|
f, err := os.Open(args.Ammo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error opening file '", args.Ammo, "': ", err)
|
fmt.Println("Error opening file '", args.Ammo, "': ", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
ammoProvider := ammo_provider.New(f)
|
ammoProvider := ammo_provider.New(f)
|
||||||
f.Close()
|
f.Close()
|
||||||
fmt.Println("Done")
|
fmt.Println("Done")
|
||||||
|
|
||||||
fmt.Println("Firing requests...")
|
fmt.Println("Firing requests...")
|
||||||
|
|||||||
Reference in New Issue
Block a user