Browse Source

调整代码布局

master
xyiege 4 months ago
parent
commit
f5aa0e31c0
  1. 36
      .gitignore
  2. 22
      aufs/README.md
  3. 5
      aufs/build.bat
  4. 49
      aufs/config/config.go
  5. 3
      aufs/go.mod
  6. 42
      aufs/main.go

36
.gitignore

@ -0,0 +1,36 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
logs/
files/

22
aufs/README.md

@ -0,0 +1,22 @@
## 功能说明
客户端和服务端使用同一套执行脚本。
### 服务端
1、启动需要参数
2、可以通过install /uninstall 安装/卸载服务
3、可以通过--config 配置文件路径 来指定配置文件路径
4、可以通过--log 日志文件路径 来指定日志文件路径
### 客户端
1、客户端执行过程中不需要携带配置参数,服务端需要携带参数。
2、服务端执行过程中写入到服务中。输入--uninstall 可以卸载服务。
3、作为客户端的时候,需要登录。登录密码可以重置默认密码。
4、选定文件对比的时候,展示左右两列

5
aufs/build.bat

@ -0,0 +1,5 @@
color 87
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -o aufs main.go

49
aufs/config/config.go

@ -0,0 +1,49 @@
package config
import (
"fmt"
"net"
)
type Config struct {
DeviceName string
Port string
LocalIP string
FilePath string
Version string
}
var G Config
// 本地ip
func GetLocalIP() (string, error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return "", err
}
var ips []string
for _, address := range addrs {
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
ips = append(ips, ipnet.IP.String())
}
}
}
if len(ips) == 0 {
return "", fmt.Errorf("get local ip failed")
} else if len(ips) == 1 {
return ips[0], nil
} else {
// Select the one connected to the network
// when there are multiple network interfaces
// Is there a better way?
c, err := net.Dial("udp", "8.8.8.8:80")
if err != nil {
return ips[0], nil
}
defer c.Close()
return c.LocalAddr().(*net.UDPAddr).IP.String(), nil
}
}

3
aufs/go.mod

@ -0,0 +1,3 @@
module aufs
go 1.22.1

42
aufs/main.go

@ -0,0 +1,42 @@
package main
import (
"aufs/config"
"fmt"
"os"
)
func main() {
// 执行的时候,没有附带参数默认为客户端
// 获取ip地址
lcip, err := config.GetLocalIP()
// 错误异常不为空,就输出
if err != nil {
fmt.Printf("get server ip faild %v", err)
}
// 判断输入
args := os.Args
if args == nil || len(args) < 2 {
// 编程客户端
fmt.Printf("run as client\n")
fmt.Printf("Usage: ./fss -t /home/\n")
os.Exit(1)
}
config.G.LocalIP = lcip
//
flag := args[1]
if flag == "-t" {
wkdir := args[2]
// 赋值给全局
config.G.FilePath = wkdir
} else {
//
curdir, err := os.Getwd()
if err != nil {
fmt.Printf("initlizer faild %v", err)
}
// current work directory
config.G.FilePath = curdir
}
}
Loading…
Cancel
Save