cli auto reconnect
This commit is contained in:
parent
f9fa48db21
commit
b1c76d7d22
@ -154,16 +154,29 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addr := fmt.Sprintf("%s:%d", hostname, port)
|
addr := fmt.Sprintf("%s:%d", hostname, port)
|
||||||
conn, err := client.Dial(addr)
|
var conn *client.Conn
|
||||||
if err != nil {
|
connDial := func() {
|
||||||
if _, ok := err.(net.Error); ok {
|
var err error
|
||||||
fmt.Fprintln(os.Stderr, refusedErrorString(addr))
|
conn, err = client.Dial(addr)
|
||||||
} else {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err.Error())
|
if _, ok := err.(net.Error); ok {
|
||||||
|
fmt.Fprintln(os.Stderr, refusedErrorString(addr))
|
||||||
|
} else {
|
||||||
|
fmt.Fprintln(os.Stderr, err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if conn != nil {
|
||||||
|
if output == "resp" {
|
||||||
|
_, err := conn.Do("output resp")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
defer conn.Close()
|
connDial()
|
||||||
livemode := false
|
livemode := false
|
||||||
aof := false
|
aof := false
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -252,13 +265,6 @@ func main() {
|
|||||||
f.Close()
|
f.Close()
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if output == "resp" {
|
|
||||||
_, err := conn.Do("output resp")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintln(os.Stderr, err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for {
|
for {
|
||||||
var command string
|
var command string
|
||||||
var err error
|
var err error
|
||||||
@ -266,7 +272,11 @@ func main() {
|
|||||||
if raw || noprompt {
|
if raw || noprompt {
|
||||||
command, err = line.Prompt("")
|
command, err = line.Prompt("")
|
||||||
} else {
|
} else {
|
||||||
command, err = line.Prompt(addr + "> ")
|
if conn == nil {
|
||||||
|
command, err = line.Prompt("not connected> ")
|
||||||
|
} else {
|
||||||
|
command, err = line.Prompt(addr + "> ")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -276,14 +286,16 @@ func main() {
|
|||||||
nohist := strings.HasPrefix(command, " ")
|
nohist := strings.HasPrefix(command, " ")
|
||||||
command = strings.TrimSpace(command)
|
command = strings.TrimSpace(command)
|
||||||
if command == "" {
|
if command == "" {
|
||||||
_, err := conn.Do("pInG")
|
if conn != nil {
|
||||||
if err != nil {
|
_, err := conn.Do("pInG")
|
||||||
if err != io.EOF {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, err.Error())
|
if err != io.EOF {
|
||||||
} else {
|
fmt.Fprintln(os.Stderr, err.Error())
|
||||||
fmt.Fprintln(os.Stderr, refusedErrorString(addr))
|
return
|
||||||
|
} else {
|
||||||
|
fmt.Fprintln(os.Stderr, refusedErrorString(addr))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if !nohist {
|
if !nohist {
|
||||||
@ -303,12 +315,20 @@ func main() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
aof = (command[0] == 'a' || command[0] == 'A') && strings.HasPrefix(strings.ToLower(command), "aof ")
|
aof = (command[0] == 'a' || command[0] == 'A') && strings.HasPrefix(strings.ToLower(command), "aof ")
|
||||||
|
tryAgain:
|
||||||
|
if conn == nil {
|
||||||
|
connDial()
|
||||||
|
if conn == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
msg, err := conn.Do(command)
|
msg, err := conn.Do(command)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != io.EOF {
|
if err != io.EOF {
|
||||||
fmt.Fprintln(os.Stderr, err.Error())
|
fmt.Fprintln(os.Stderr, err.Error())
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintln(os.Stderr, refusedErrorString(addr))
|
conn = nil
|
||||||
|
goto tryAgain
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user