diff --git a/dsCommonTools/.idea/workspace.xml b/dsCommonTools/.idea/workspace.xml
index 0b752f21..89b1099d 100644
--- a/dsCommonTools/.idea/workspace.xml
+++ b/dsCommonTools/.idea/workspace.xml
@@ -3,10 +3,8 @@
-
-
-
-
+
+
@@ -50,7 +48,16 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -71,6 +78,7 @@
+
diff --git a/dsCommonTools/Shell/debug.sh b/dsCommonTools/Shell/debug.sh
new file mode 100644
index 00000000..2cbdd87f
--- /dev/null
+++ b/dsCommonTools/Shell/debug.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# 杀掉进程
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
+sleep 3
+
+cd /usr/local/dsMin/dsCommonTools
+chmod +x dsCommonTools
+# 运行为后台进程1
+/usr/local/dsMin/dsCommonTools/dsCommonTools
diff --git a/dsCommonTools/Shell/start.sh b/dsCommonTools/Shell/start.sh
new file mode 100644
index 00000000..a29ae752
--- /dev/null
+++ b/dsCommonTools/Shell/start.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# 杀掉进程
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
+sleep 3
+
+chmod +x dsCommonTools
+# 运行为后台进程
+nohup /usr/local/dsMin/dsCommonTools/dsCommonTools >> /usr/local/dsMin/dsCommonTools/dsCommonTools.log 2>&1 &
diff --git a/dsCommonTools/Shell/stop.sh b/dsCommonTools/Shell/stop.sh
new file mode 100644
index 00000000..899b115a
--- /dev/null
+++ b/dsCommonTools/Shell/stop.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
diff --git a/dsCommonTools/Tools/Distribute.go b/dsCommonTools/Tools/Distribute.go
new file mode 100644
index 00000000..a283b5b3
--- /dev/null
+++ b/dsCommonTools/Tools/Distribute.go
@@ -0,0 +1,41 @@
+package main
+
+import (
+ "dsCommonTools/Utils/ConfigUtil"
+ "dsCommonTools/Utils/SftpUtil"
+ "dsCommonTools/Utils/SshUtil"
+ "io/ioutil"
+ "log"
+)
+
+func main() {
+ var buildPath=ConfigUtil.DistributeLocalPath+"/build"
+ //声明远端SSH管理器
+ cli := SshUtil.New(ConfigUtil.DistributeIp, ConfigUtil.DistributeUser, ConfigUtil.DistributePwd,int(ConfigUtil.DistributePort))
+ //杀掉进程
+ cli.Run("ps -ef |grep dsCommonTools |awk '{print $2}'|xargs kill -9")
+
+ //sftp上传文件及文件夹
+ sftpClient, err := SftpUtil.Connect(ConfigUtil.DistributeUser, ConfigUtil.DistributePwd, ConfigUtil.DistributeIp,int(ConfigUtil.DistributePort))
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer sftpClient.Close()
+ _, errStat := sftpClient.Stat(ConfigUtil.DistributeRemotePath)
+ if errStat != nil {
+ log.Fatal(ConfigUtil.DistributeRemotePath + " remote path not exists!")
+ }
+ _, err = ioutil.ReadDir(buildPath)
+ if err != nil {
+ log.Fatal(buildPath + " local path not exists!")
+ }
+ SftpUtil.UploadDirectory(sftpClient, buildPath, ConfigUtil.DistributeRemotePath)
+ //执行SSH命令行,授权
+ cli.Run("chmod +x /usr/local/dsMin/dsCommonTools/dsCommonTools")
+ cli.Run("chmod +x /usr/local/dsMin/dsCommonTools/start.sh")
+ cli.Run("chmod +x /usr/local/dsMin/dsCommonTools/debug.sh")
+ cli.Run("chmod +x /usr/local/dsMin/dsCommonTools/stop.sh")
+ //启动
+ cli.Run("cd /usr/local/dsMin/dsCommonTools && ./start.sh")
+ log.Println("通用工具服务上传并启动成功!")
+}
diff --git a/dsCommonTools/Tools/upx.exe b/dsCommonTools/Tools/upx.exe
new file mode 100644
index 00000000..7f89f50a
Binary files /dev/null and b/dsCommonTools/Tools/upx.exe differ
diff --git a/dsCommonTools/Utils/SftpUtil/SftpUtil.go b/dsCommonTools/Utils/SftpUtil/SftpUtil.go
new file mode 100644
index 00000000..ee0f108f
--- /dev/null
+++ b/dsCommonTools/Utils/SftpUtil/SftpUtil.go
@@ -0,0 +1,95 @@
+package SftpUtil
+
+import (
+ "fmt"
+ "github.com/pkg/sftp"
+ "golang.org/x/crypto/ssh"
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "path/filepath"
+ "time"
+)
+
+func Connect(user, password, host string, port int) (*sftp.Client, error) {
+ var (
+ auth []ssh.AuthMethod
+ addr string
+ clientConfig *ssh.ClientConfig
+ sshClient *ssh.Client
+ sftpClient *sftp.Client
+ err error
+ )
+ // get auth method
+ auth = make([]ssh.AuthMethod, 0)
+ auth = append(auth, ssh.Password(password))
+
+ clientConfig = &ssh.ClientConfig{
+ User: user,
+ Auth: auth,
+ Timeout: 30 * time.Second,
+ HostKeyCallback: ssh.InsecureIgnoreHostKey(), //ssh.FixedHostKey(hostKey),
+ }
+
+ // connet to ssh
+ addr = fmt.Sprintf("%s:%d", host, port)
+ if sshClient, err = ssh.Dial("tcp", addr, clientConfig); err != nil {
+ return nil, err
+ }
+
+ // create sftp client
+ if sftpClient, err = sftp.NewClient(sshClient); err != nil {
+ return nil, err
+ }
+ return sftpClient, nil
+}
+
+func UploadFile(sftpClient *sftp.Client, localFilePath string, remotePath string) {
+ srcFile, err := os.Open(localFilePath)
+ if err != nil {
+ fmt.Println("os.Open error : ", localFilePath)
+ log.Fatal(err)
+
+ }
+ defer srcFile.Close()
+ //golang中path.Base(pathString)函数,pathString的值必须为 linux 风格的路径,即 "/" 才能够正常的获取最后的路径段的值。
+ localFilePath = filepath.ToSlash(localFilePath)
+ var remoteFileName = path.Base(localFilePath)
+
+ dstFile, err := sftpClient.Create(path.Join(remotePath, remoteFileName))
+ if err != nil {
+ fmt.Println("sftpClient.Create error : ", path.Join(remotePath, remoteFileName))
+ log.Fatal(err)
+
+ }
+ defer dstFile.Close()
+
+ ff, err := ioutil.ReadAll(srcFile)
+ if err != nil {
+ fmt.Println("ReadAll error : ", localFilePath)
+ log.Fatal(err)
+
+ }
+ dstFile.Write(ff)
+ fmt.Println(localFilePath + " copy file to remote server finished!")
+}
+
+func UploadDirectory(sftpClient *sftp.Client, localPath string, remotePath string) {
+ localFiles, err := ioutil.ReadDir(localPath)
+ if err != nil {
+ log.Fatal("read dir list fail ", err)
+ }
+ for _, backupDir := range localFiles {
+ localFilePath := path.Join(localPath, backupDir.Name())
+ remoteFilePath := path.Join(remotePath, backupDir.Name())
+ if backupDir.IsDir() {
+ sftpClient.Mkdir(remoteFilePath)
+ UploadDirectory(sftpClient, localFilePath, remoteFilePath)
+ } else {
+ UploadFile(sftpClient, path.Join(localPath, backupDir.Name()), remotePath)
+ }
+ }
+
+ fmt.Println(localPath + " copy directory to remote server finished!")
+}
diff --git a/dsCommonTools/Utils/SshUtil/SshUtil.go b/dsCommonTools/Utils/SshUtil/SshUtil.go
new file mode 100644
index 00000000..31e2d31f
--- /dev/null
+++ b/dsCommonTools/Utils/SshUtil/SshUtil.go
@@ -0,0 +1,65 @@
+package SshUtil
+
+import (
+ "fmt"
+ "golang.org/x/crypto/ssh"
+ "net"
+ "time"
+)
+
+type Cli struct {
+ IP string
+ Username string
+ Password string
+ Port int
+ client *ssh.Client
+ LastResult string
+}
+
+func New(ip string, username string, password string, port ...int) *Cli {
+ cli := new(Cli)
+ cli.IP = ip
+ cli.Username = username
+ cli.Password = password
+ if len(port) <= 0 {
+ cli.Port = 22
+ } else {
+ cli.Port = port[0]
+ }
+ return cli
+}
+
+func (c Cli) Run(shell string) (string, error) {
+ if c.client == nil {
+ if err := c.connect(); err != nil {
+ return "", err
+ }
+ }
+ session, err := c.client.NewSession()
+ if err != nil {
+ return "", err
+ }
+ defer session.Close()
+ buf, err := session.CombinedOutput(shell)
+
+ c.LastResult = string(buf)
+ return c.LastResult, err
+}
+//连接
+func (c *Cli) connect() error {
+ config := ssh.ClientConfig{
+ User: c.Username,
+ Auth: []ssh.AuthMethod{ssh.Password(c.Password)},
+ HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
+ return nil
+ },
+ Timeout: 10 * time.Second,
+ }
+ addr := fmt.Sprintf("%s:%d", c.IP, c.Port)
+ sshClient, err := ssh.Dial("tcp", addr, &config)
+ if err != nil {
+ return err
+ }
+ c.client = sshClient
+ return nil
+}
diff --git a/dsCommonTools/WinBuild/Distribute.exe b/dsCommonTools/WinBuild/Distribute.exe
new file mode 100644
index 00000000..f72dbd9a
Binary files /dev/null and b/dsCommonTools/WinBuild/Distribute.exe differ
diff --git a/dsCommonTools/build/Config/Config.ini b/dsCommonTools/build/Config/Config.ini
new file mode 100644
index 00000000..a1a76078
--- /dev/null
+++ b/dsCommonTools/build/Config/Config.ini
@@ -0,0 +1,46 @@
+#发布功能的配置
+[distribute]
+ip = 10.10.14.187
+port = 22
+user = root
+pwd = dsideal
+remotePath = /usr/local/dsMin/dsCommonTools/
+localPath = E:/Work/dsMin/dsCommonTools
+
+#gin服务器的端口
+[server]
+port = 8006
+
+# 本项目名称,用于记录日志
+[project]
+project_name = dsCommonTools
+
+[mysql]
+ip = 10.10.14.187
+port = 22066
+db_name = base_db_dev
+user = root
+pwd = DsideaL147258369
+
+[redis]
+ip = 10.10.14.175
+port = 18890
+db = 0
+
+#minio配置
+[minio]
+minio_endpoint = 10.10.14.231:9000
+minio_accessKeyId = minioadmin
+minio_secretAccessKey = minioadmin
+minio_bucket = dsideal
+download_prefix = http://10.10.14.231:9000/
+
+[obs]
+obs_endpoint = https://obs.myhuaweicloud.com
+obs_accessKeyId = HZDE30KAN5C5OLJ9JCCF
+obs_secretAccessKey = 3QO1IJNRrFZyER1e1NBBu4qSyqDfZ8Xup0YPzDFW
+obs_bucket = dsideal
+
+[preview]
+prefix = https://ow365.cn/?i=14531&furl=http://video.edusoa.com/crh/
+
diff --git a/dsCommonTools/build/Config/logo.txt b/dsCommonTools/build/Config/logo.txt
new file mode 100644
index 00000000..135f793b
--- /dev/null
+++ b/dsCommonTools/build/Config/logo.txt
@@ -0,0 +1,6 @@
+ _ _____ _______ _
+ | | / ____| |__ __| | |
+ __| |___| | ___ _ __ ___ _ __ ___ ___ _ __ | | ___ ___ | |___
+ / _` / __| | / _ \| '_ ` _ \| '_ ` _ \ / _ \| '_ \| |/ _ \ / _ \| / __|
+ | (_| \__ \ |___| (_) | | | | | | | | | | | (_) | | | | | (_) | (_) | \__ \
+ \__,_|___/\_____\___/|_| |_| |_|_| |_| |_|\___/|_| |_|_|\___/ \___/|_|___/
\ No newline at end of file
diff --git a/dsCommonTools/build/debug.sh b/dsCommonTools/build/debug.sh
new file mode 100644
index 00000000..2cbdd87f
--- /dev/null
+++ b/dsCommonTools/build/debug.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# 杀掉进程
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
+sleep 3
+
+cd /usr/local/dsMin/dsCommonTools
+chmod +x dsCommonTools
+# 运行为后台进程1
+/usr/local/dsMin/dsCommonTools/dsCommonTools
diff --git a/dsCommonTools/build/dsCommonTools b/dsCommonTools/build/dsCommonTools
new file mode 100644
index 00000000..f41af943
Binary files /dev/null and b/dsCommonTools/build/dsCommonTools differ
diff --git a/dsCommonTools/build/start.sh b/dsCommonTools/build/start.sh
new file mode 100644
index 00000000..a29ae752
--- /dev/null
+++ b/dsCommonTools/build/start.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# 杀掉进程
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
+sleep 3
+
+chmod +x dsCommonTools
+# 运行为后台进程
+nohup /usr/local/dsMin/dsCommonTools/dsCommonTools >> /usr/local/dsMin/dsCommonTools/dsCommonTools.log 2>&1 &
diff --git a/dsCommonTools/build/stop.sh b/dsCommonTools/build/stop.sh
new file mode 100644
index 00000000..899b115a
--- /dev/null
+++ b/dsCommonTools/build/stop.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数
+kill -9 `pgrep -f dsCommonTools` 2>/dev/null
diff --git a/dsCommonTools/go.mod b/dsCommonTools/go.mod
index ba35b41d..c0d39178 100644
--- a/dsCommonTools/go.mod
+++ b/dsCommonTools/go.mod
@@ -15,11 +15,15 @@ require (
github.com/go-redis/redis v6.15.9+incompatible // indirect
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/minio/minio-go/v6 v6.0.57 // indirect
+ github.com/pkg/sftp v1.13.1 // indirect
github.com/satori/go.uuid v1.2.0 // indirect
github.com/syndtr/goleveldb v1.0.0 // indirect
github.com/tealeg/xlsx v1.0.5 // indirect
github.com/xormplus/builder v0.0.0-20200331055651-240ff40009be // indirect
github.com/xormplus/xorm v0.0.0-20210512135344-8123d584d5f5 // indirect
+ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect
+ golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
+ golang.org/x/text v0.3.6 // indirect
gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4 // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
)
diff --git a/dsCommonTools/go.sum b/dsCommonTools/go.sum
index 9f0915ea..41b30804 100644
--- a/dsCommonTools/go.sum
+++ b/dsCommonTools/go.sum
@@ -48,6 +48,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV
github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
@@ -70,6 +72,10 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/sftp v1.13.1 h1:I2qBYMChEhIjOgazfJmV3/mZM256btk6wkCDRmW7JYs=
+github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
@@ -80,6 +86,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
@@ -96,11 +103,16 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg=
+golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
+golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -109,9 +121,17 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7 h1:iGu644GcxtEcrInvDsQRCwJjtCIOlT2V7IRt6ah2Whw=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -127,3 +147,4 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/dsCommonTools/一键发布.cmd b/dsCommonTools/一键发布.cmd
new file mode 100644
index 00000000..10c145cb
--- /dev/null
+++ b/dsCommonTools/一键发布.cmd
@@ -0,0 +1,17 @@
+:: Windows汾 -ldflags "-s -w"
+go build -o ./WinBuild/Distribute.exe ./Tools/Distribute.go
+
+:: Linux汾
+SET GOOS=linux
+SET GOARCH=amd64
+go build -gcflags "all=-N -l" -o ./build/dsCommonTools main.go
+
+
+:: Դļ
+xcopy .\Shell\* .\build\ /y /e /i /q
+xcopy .\Config\* .\build\Config /y /e /i /q
+
+:: ϴļ
+.\WinBuild\Distribute.exe
+
+pause
\ No newline at end of file