Skip to content

Commit 0c372e6

Browse files
author
Geniucker
committed
log: finish logger
1 parent 5279262 commit 0c372e6

12 files changed

Lines changed: 285 additions & 34 deletions

File tree

config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ v: 3.3
22
routeConfig: "route.txt"
33
libimobiledeviceDir: "libimobiledevice"
44
imageDir: "DeveloperDiskImage"
5+
log-level: error

internal/config/config.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package config
22

33
import (
44
"os"
5+
"runtime"
56
"strings"
67

7-
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/utils"
88
"gopkg.in/yaml.v3"
99
)
1010

@@ -13,6 +13,7 @@ type config struct {
1313
RouteConfig string `yaml:"routeConfig"`
1414
LibimobiledeviceDir string `yaml:"libimobiledeviceDir"`
1515
ImageDir string `yaml:"imageDir"`
16+
LogLevel string `yaml:"log-level"`
1617
}
1718

1819
func SetupConfig() (conf config) {
@@ -26,8 +27,18 @@ func SetupConfig() (conf config) {
2627
panic(err)
2728
}
2829

29-
// set imageDir
30-
OS := utils.GetOS()
30+
var OS string
31+
switch runtime.GOOS {
32+
case "windows":
33+
OS = "win"
34+
case "darwin":
35+
OS = "darwin"
36+
case "linux":
37+
OS = "linux"
38+
default:
39+
OS = "unknown"
40+
}
41+
3142
conf.LibimobiledeviceDir = strings.Join([]string{conf.LibimobiledeviceDir, OS}, "/")
3243

3344
return

internal/device/device.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,34 @@ import (
66
"strings"
77

88
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/config"
9+
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/logger"
910
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/utils"
1011
)
1112

13+
var myLogger = logger.NewMyLogger("log.log", config.Config.LogLevel)
14+
1215
func Pair() int {
16+
myLogger.Infoln("Start pairing ...")
1317
conf := config.Config
1418
resp := utils.CmdWithlibimobidevice([]string{"idevicepair", "pair"}, conf.LibimobiledeviceDir)
19+
myLogger.Debugln("resp:", resp)
1520
if strings.Contains(resp, "SUCCESS") {
21+
myLogger.Infoln("Pair success")
1622
return 0
1723
}
1824
if strings.Contains(resp, "No device found") {
25+
myLogger.Warnln("No device found")
1926
return 1
2027
}
2128
if strings.Contains(resp, "passcode") {
2229
for strings.Contains(resp, "passcode") {
2330
fmt.Println("请解锁手机后按回车")
2431
fmt.Scanln()
2532
resp = utils.CmdWithlibimobidevice([]string{"idevicepair", "pair"}, conf.LibimobiledeviceDir)
33+
myLogger.Debugln("resp:", resp)
2634
}
2735
if strings.Contains(resp, "SUCCESS") {
36+
myLogger.Infoln("Pair success")
2837
return 0
2938
}
3039
}
@@ -33,13 +42,17 @@ func Pair() int {
3342
fmt.Println("请在你的手机/或平板上按提示信任此电脑并按回车")
3443
fmt.Scanln()
3544
resp = utils.CmdWithlibimobidevice([]string{"idevicepair", "pair"}, conf.LibimobiledeviceDir)
45+
myLogger.Debugln("resp:", resp)
3646
}
3747
if strings.Contains(resp, "SUCCESS") {
48+
myLogger.Infoln("Pair success")
3849
return 0
3950
} else {
51+
myLogger.Errorln("Unknown error")
4052
return -1
4153
}
4254
} else {
55+
myLogger.Errorln("Unknown error")
4356
return -1
4457
}
4558
}
@@ -48,6 +61,9 @@ func GetDeviceInfo() (deviceName string, version string) {
4861
info := utils.CmdWithlibimobidevice([]string{"ideviceinfo"}, config.Config.LibimobiledeviceDir)
4962
deviceName = regexp.MustCompile(`DeviceName: (.*)`).FindStringSubmatch(info)[1]
5063
version = regexp.MustCompile(`ProductVersion: (.*)`).FindStringSubmatch(info)[1]
64+
myLogger.Debugln("deviceName:", deviceName)
65+
myLogger.Debugln("version:", version)
66+
myLogger.Debugln("info:", info)
5167
// strip
5268
deviceName = strings.Trim(deviceName, " \n\r\t")
5369
version = strings.Trim(version, " \n\r\t")

internal/device/location.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import (
88
)
99

1010
func SetLoc(loc map[string]float64) {
11-
// python: utils.CmdWithlibimobidevice(["idevicesetlocation", "--", str(loc["lat"]-0.00389), str(loc["lng"]-0.01075)], config.Config.LibimobiledeviceDir, False)
12-
// go version
11+
myLogger.Debugln("loc:", loc)
1312
lat := loc["lat"]
1413
lng := loc["lng"]
1514
utils.CmdWithlibimobidevice([]string{"idevicesetlocation", "--", strconv.FormatFloat(lat-0.00389, 'f', -1, 64), strconv.FormatFloat(lng-0.01075, 'f', -1, 64)}, config.Config.LibimobiledeviceDir, false)

internal/initialize/initialize.go

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ import (
88

99
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/config"
1010
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/device"
11+
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/logger"
1112
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/parseRoute"
1213
"github.com/iosRealRun-cli/iOSRealRun-cli/internal/utils"
1314
)
1415

16+
var myLogger = logger.NewMyLogger("log.log", config.Config.LogLevel)
17+
1518
func Connect() {
1619
conf := config.Config
1720
OS := utils.GetOS()
1821

1922
if OS != "win" {
2023
utils.Cmd([]string{"chmod", "-R", "+rx", conf.LibimobiledeviceDir}, false)
2124
if OS == "linux" {
25+
// check if usbmuxd is installed
2226
path := strings.Split(os.Getenv("PATH"), ":")
2327
check := false
2428
for _, i := range path {
@@ -33,35 +37,47 @@ func Connect() {
3337
fmt.Scanln()
3438
}
3539
} else {
40+
// check if libimobiledevice is quarantined
3641
quarantine := strings.Contains(utils.Cmd([]string{"xattr", "libimobiledevice/darwin/ideviceinfo"}), "quarantine")
42+
myLogger.Debugln("quarantine:", quarantine)
3743
if quarantine {
3844
utils.Cmd([]string{"sudo", "xattr", "-d", "-r", "com.apple.quarantine", "."}, false)
3945
}
4046
}
4147
}
4248

49+
myLogger.Infoln("Start connecting to device ...")
4350
fmt.Println("请解锁手机或iPad,然后按回车键继续")
4451
fmt.Scanln()
4552
status := device.Pair()
53+
myLogger.Debugln("status:", status)
4654
for status == 1 {
55+
myLogger.Warnln("No device connected to computer")
4756
fmt.Println("无设备连接,Windows需要安装iTunes,也可尝试解锁手机并插拔数据线,如果还是不行Mac和Windows请打开iTunes并在跑完前不要关闭")
4857
fmt.Println("确定连接后按回车键继续")
4958
fmt.Scanln()
5059
status = device.Pair()
60+
myLogger.Debugln("status:", status)
5161
}
5262
if status == -1 {
53-
fmt.Println("遇到了位置的问题")
63+
myLogger.Error("Connect to device failed")
64+
fmt.Println("遇到了未知的问题")
5465
fmt.Println("按回车退出")
55-
os.Exit(1)
66+
panic("未知错误")
5667
}
68+
myLogger.Infoln("Connected to device")
5769

5870
deviceName, version := device.GetDeviceInfo()
71+
myLogger.Debugln("deviceName:", deviceName)
72+
myLogger.Debugln("version:", version)
5973
fmt.Printf("已连接到: %s\n", deviceName)
6074
fmt.Printf("系统版本:%s\n", version)
6175

6276
majorVersion, _ := strconv.ParseInt(strings.Split(version, ".")[0], 10, 64)
77+
myLogger.Debugln("majorVersion:", majorVersion)
6378
if majorVersion >= 16 {
6479
developerMode := !strings.Contains(utils.Cmd([]string{"idevicedevmodectl", "list"}), "disabled")
80+
myLogger.Debugln("developerMode:", developerMode)
6581
if !developerMode {
6682
utils.Cmd([]string{"idevicedevmodectl", "reveal"})
6783
fmt.Println("请在系统设置-隐私与安全性-开发者模式中打开开发者模式")
@@ -72,6 +88,7 @@ func Connect() {
7288
os.Exit(0)
7389
}
7490

91+
myLogger.Infoln("Start importing DeveloperDiskImage ...")
7592
imageStatus := utils.FileExists(fmt.Sprintf("%s/%s/DeveloperDiskImage.dmg", conf.ImageDir, version)) &&
7693
utils.FileExists(fmt.Sprintf("%s/%s/DeveloperDiskImage.dmg.signature", conf.ImageDir, version))
7794
if !imageStatus {
@@ -81,25 +98,29 @@ func Connect() {
8198
}
8299

83100
if !imageStatus {
101+
myLogger.Warnln("DeveloperDiskImage.dmg not found")
84102
fmt.Printf("没有在 %s 下找到 %s 版本的开发者镜像\n", conf.ImageDir, version)
85103
fmt.Println("请添加完后再次运行本脚本")
86104
fmt.Println("现在按回车退出")
87105
fmt.Scanln()
88106
os.Exit(0)
89107
}
90108

109+
myLogger.Infoln("Verifying the signature of the DeveloperDiskImage.dmg ...")
91110
imageCMD := []string{
92111
"ideviceimagemounter",
93112
fmt.Sprintf("%s/%s/DeveloperDiskImage.dmg", conf.ImageDir, version),
94113
fmt.Sprintf("%s/%s/DeveloperDiskImage.dmg.signature", conf.ImageDir, version),
95114
}
96115
if strings.Contains(utils.Cmd(imageCMD), "-3") {
116+
myLogger.Errorln("DeveloperDiskImage.dmg signature verification failed")
97117
fmt.Println("开发者镜像签名验证失败,你要重新下一遍")
98118
fmt.Println("完成后再次运行本脚本")
99119
fmt.Println("现在按回车退出")
100120
fmt.Scanln()
101121
os.Exit(0)
102122
}
123+
myLogger.Infoln("Import DeveloperDiskImage successfully")
103124
}
104125
}
105126

@@ -110,5 +131,5 @@ func Init() []map[string]float64 {
110131
if err != nil {
111132
panic(err)
112133
}
113-
return parseRoute.Split(content)
134+
return parseRoute.ParseRoute(content)
114135
}

0 commit comments

Comments
 (0)