|
|
@@ -8,7 +8,9 @@ import (
|
|
|
"fmt"
|
|
|
"io"
|
|
|
"os"
|
|
|
+ "os/exec"
|
|
|
"os/signal"
|
|
|
+ "runtime"
|
|
|
"strings"
|
|
|
"sync/atomic"
|
|
|
"syscall"
|
|
|
@@ -16,8 +18,6 @@ import (
|
|
|
|
|
|
"github.com/google/uuid"
|
|
|
"github.com/peterh/liner"
|
|
|
-
|
|
|
- "hnyfkj.com.cn/rtu/linux/baseapp"
|
|
|
)
|
|
|
|
|
|
const MODULE_NAME = "YFKJ_SSH_CLIENT"
|
|
|
@@ -25,22 +25,23 @@ const MODULE_NAME = "YFKJ_SSH_CLIENT"
|
|
|
var (
|
|
|
coupler *MQTTCoupler
|
|
|
Version = "1.0.0.1"
|
|
|
+ BuildTime = "unknown"
|
|
|
ErrBrokerAddressEmpty = errors.New("mqtt server address is empty")
|
|
|
ErrIMEINotAvailable = errors.New("device imei is not available")
|
|
|
)
|
|
|
|
|
|
func main() {
|
|
|
- if baseapp.IsArgsParam("-h") {
|
|
|
+ if IsArgsParam("-h") {
|
|
|
help()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if baseapp.IsArgsParam("-v") {
|
|
|
- fmt.Println("程序版本:", Version, "\n构建时间:", baseapp.BuildTime)
|
|
|
+ if IsArgsParam("-v") {
|
|
|
+ fmt.Println("程序版本:", Version, "\n构建时间:", BuildTime)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- devIMEI := baseapp.GetArgsParamStr("-c", "")
|
|
|
+ devIMEI := GetArgsParamStr("-c", "")
|
|
|
if devIMEI == "" {
|
|
|
help()
|
|
|
return
|
|
|
@@ -170,6 +171,11 @@ func term(pingState *atomic.Bool) {
|
|
|
break
|
|
|
}
|
|
|
|
|
|
+ if input == "clear" {
|
|
|
+ clearScreen()
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
executing.Store(true)
|
|
|
result, err := coupler.exec(input)
|
|
|
executing.Store(false)
|
|
|
@@ -256,3 +262,15 @@ func printWelcome() {
|
|
|
`
|
|
|
fmt.Println(welcome)
|
|
|
}
|
|
|
+
|
|
|
+func clearScreen() {
|
|
|
+ if runtime.GOOS == "windows" {
|
|
|
+ cmd := exec.Command("cmd", "/c", "cls")
|
|
|
+ cmd.Stdout = os.Stdout
|
|
|
+ _ = cmd.Run()
|
|
|
+ } else {
|
|
|
+ cmd := exec.Command("clear")
|
|
|
+ cmd.Stdout = os.Stdout
|
|
|
+ _ = cmd.Run()
|
|
|
+ }
|
|
|
+}
|