@@ -2,6 +2,7 @@ package main
2
2
3
3
import (
4
4
"fmt"
5
+ "os"
5
6
6
7
"github.com/brokenCursor/usb-modem-cli/drivers"
7
8
@@ -36,9 +37,15 @@ func init() {
36
37
}
37
38
38
39
func main () {
40
+ if err := run (); err != nil {
41
+ fmt .Fprintf (os .Stderr , "error: %v\n " , err )
42
+ }
43
+ }
44
+
45
+ func run () error {
39
46
parser := arg .MustParse (& args )
40
47
model := "8810FT"
41
-
48
+
42
49
modem , err := drivers .GetModemDriver (model , "192.168.0.1" )
43
50
if err != nil {
44
51
panic ("failed to get drivers" )
@@ -47,14 +54,26 @@ func main() {
47
54
switch {
48
55
case args .Connection != nil :
49
56
err := validate .Struct (args .Connection )
50
-
57
+
51
58
cell , ok := modem .(drivers.ModemCell )
52
59
if ! ok {
53
- fmt .Printf ("Modem %s does not support cell connection" , modem .GetModel ())
54
- return
60
+ return DriverSupportError {Driver : modem , Function : "cell connection" }
55
61
}
56
62
57
- err , err := cell .GetCellConnStatus ()
63
+ switch args .Connection .Action {
64
+ case "status" :
65
+ isConnected , err := cell .GetCellConnStatus ()
66
+
67
+ if err != nil {
68
+ fmt .Println ("Failed to get connection status" )
69
+ return
70
+ }
71
+ if isConnected {
72
+ fmt .Println ("Status: up" )
73
+ } else {
74
+ fmt .Println ("Status: down" )
75
+ }
76
+ }
58
77
59
78
if err != nil {
60
79
parser .FailSubcommand ("Unknown action" , "conn" )
@@ -65,4 +84,6 @@ func main() {
65
84
}
66
85
67
86
fmt .Printf ("Modem cmd: %s\n " , args .Ip )
87
+
88
+ return nil
68
89
}
0 commit comments