From 375081cb3b748a282eada24dac8ab060da574288 Mon Sep 17 00:00:00 2001 From: bufan <821869798@qq.com> Date: Wed, 6 Sep 2023 00:16:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E9=94=AE=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/go.yml | 2 +- README.md | 26 +++- config/config.go | 58 ++++++++- convert/common.go | 2 +- convert/csv.go | 2 +- convert/entry.go | 2 +- convert/register.go | 2 +- define/system.go | 10 ++ diff/diff.go | 17 +-- diff/diff_test.go | 7 +- doc/img/complete_register.png | Bin 0 -> 66792 bytes doc/img/diff.png | Bin 0 -> 88658 bytes doc/img/select_comapre.png | Bin 0 -> 23894 bytes doc/img/select_register.png | Bin 0 -> 35157 bytes go.mod | 31 ++++- go.sum | 94 +++++++++++++- main.go | 23 +++- merge/merge.go | 74 +++++------ register_tools/compare/compare.go | 32 +++++ register_tools/compare/win_bc.go | 48 ++++++++ register_tools/entry.go | 169 +++++++++++++++++++++++++ register_tools/reg/reg.go | 13 ++ register_tools/reg/reg_windows.go | 34 +++++ register_tools/scm/iregister.go | 11 ++ register_tools/scm/scm_test.go | 16 +++ register_tools/scm/tortoise_git.go | 64 ++++++++++ register_tools/scm/tortoise_svn.go | 64 ++++++++++ register_tools/scm/win_fork.go | 78 ++++++++++++ source/read_excel.go | 2 +- util/console.go | 12 -- util/filepath.go | 191 ----------------------------- util/format.go | 37 ------ 32 files changed, 808 insertions(+), 313 deletions(-) create mode 100644 define/system.go create mode 100644 doc/img/complete_register.png create mode 100644 doc/img/diff.png create mode 100644 doc/img/select_comapre.png create mode 100644 doc/img/select_register.png create mode 100644 register_tools/compare/compare.go create mode 100644 register_tools/compare/win_bc.go create mode 100644 register_tools/entry.go create mode 100644 register_tools/reg/reg.go create mode 100644 register_tools/reg/reg_windows.go create mode 100644 register_tools/scm/iregister.go create mode 100644 register_tools/scm/scm_test.go create mode 100644 register_tools/scm/tortoise_git.go create mode 100644 register_tools/scm/tortoise_svn.go create mode 100644 register_tools/scm/win_fork.go delete mode 100644 util/console.go delete mode 100644 util/filepath.go delete mode 100644 util/format.go diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index c671fe2..ed9269b 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -21,7 +21,7 @@ jobs: with: go-version: '1.20' - - run: go build -o bin/${{ github.event.repository.name }}_linux_x64 . + - run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/${{ github.event.repository.name }}_linux_x64 . - run: CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o bin/${{ github.event.repository.name }}_win_x64.exe - run: CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -o bin/${{ github.event.repository.name }}_win_arm64.exe . - run: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/${{ github.event.repository.name }}_darwin_x64 . diff --git a/README.md b/README.md index 6396c5a..ae85070 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,33 @@ excel merge diff tools,excel对比合并工具,把excel转成csv格式,然 ### 支持功能 -- 支持xlsx、xlsm、xls +- 支持xlsx、xlsm、xls,支持多Sheet - 支持excel对比 diff - 支持excel合并 merge - 支持作为TortoiseSVN和TortoiseGit以及其他能够自定义对比工具的版本控制软件,如果对比的不是excel文件,会直接调用对比工具。 +## 使用方法 + +### windows + +双击打开执行文件,允许权限(用于读取和修改注册表) + +1. 选择基础的对比工具之后回车确定,如果有安装Beyond Comapre会识别出来 + + ![select_comapre](doc/img/select_comapre.png) + +2. 选择需要注册的scm版本工具,空格选择,回车确定,默认全选 + + ![select_register](doc/img/select_register.png) + +3. 注册完成,任意键关闭 + + ![complete_register](E:\program\my\go\excel_merge\doc\img\complete_register.png) + + 4. 就可以正常使用了,比较示例如下,合并同理: + + ![diff](E:\program\my\go\excel_merge\doc\img\diff.png) + ## TODO -- excel合并优化,考虑更多情况,保留更多格式数据。 +- excel合并保留更多格式数据。 diff --git a/config/config.go b/config/config.go index 643d306..0e3f35f 100644 --- a/config/config.go +++ b/config/config.go @@ -1,8 +1,13 @@ package config import ( - "excel_merge/util" + "fmt" + "github.com/821869798/fankit/fanpath" "github.com/BurntSushi/toml" + "os" + "regexp" + "runtime" + "strings" ) type RawGlobalConfig struct { @@ -13,13 +18,58 @@ type RawGlobalConfig struct { MergeArgs string `toml:"merge_arg"` } -var GlobalConfig *RawGlobalConfig +var ( + GlobalConfig *RawGlobalConfig + ConfigFilePath string +) func ParseConfig(configFile string) error { - configFile = util.AbsOrRelExecutePath(configFile) + ConfigFilePath = fanpath.AbsOrRelExecutePath(configFile) GlobalConfig = new(RawGlobalConfig) - if _, err := toml.DecodeFile(configFile, GlobalConfig); err != nil { + if _, err := toml.DecodeFile(ConfigFilePath, GlobalConfig); err != nil { + return err + } + return nil +} + +func WriteConfig(configFile string) error { + if configFile == "" { + configFile = ConfigFilePath + } + f, err := os.Create(configFile) + if err != nil { + return err + } + if err := toml.NewEncoder(f).Encode(GlobalConfig); err != nil { + return err + } + return nil +} + +func UpdateCompareTool(newFilePath string) error { + content, err := os.ReadFile(ConfigFilePath) + if err != nil { + return err + } + + // 定义正则表达式 + pattern := `compare_exe\s*=\s*"(.*?)"` + regex := regexp.MustCompile(pattern) + + if runtime.GOOS == "windows" { + // windows系统下,将路径中的反斜杠替换为双反斜杠 + newFilePath = strings.ReplaceAll(newFilePath, "\\", "\\\\") + } + // 使用正则表达式替换字符串 + newContent := regex.ReplaceAllString(string(content), fmt.Sprintf("compare_exe = \"%s\"", newFilePath)) + + // 将替换后的内容写入文件 + err = os.WriteFile(ConfigFilePath, []byte(newContent), 0644) + if err != nil { return err } return nil + + // 选择需要注册的版本软件工具 + } diff --git a/convert/common.go b/convert/common.go index 8714512..a073bb2 100644 --- a/convert/common.go +++ b/convert/common.go @@ -4,8 +4,8 @@ import ( "bufio" "bytes" "encoding/csv" - "excel_merge/define" "fmt" + "github.com/821869798/excel_merge/define" "io" "os" "strings" diff --git a/convert/csv.go b/convert/csv.go index 4c230eb..e00f0fe 100644 --- a/convert/csv.go +++ b/convert/csv.go @@ -1,7 +1,7 @@ package convert import ( - "excel_merge/define" + "github.com/821869798/excel_merge/define" ) type ConvertCSV struct { diff --git a/convert/entry.go b/convert/entry.go index 269859c..7478a38 100644 --- a/convert/entry.go +++ b/convert/entry.go @@ -2,8 +2,8 @@ package convert import ( "errors" - "excel_merge/define" "fmt" + "github.com/821869798/excel_merge/define" ) func RunConvert(mode string, excelData *define.ExcelData, filePath string) error { diff --git a/convert/register.go b/convert/register.go index ab61582..e0e4387 100644 --- a/convert/register.go +++ b/convert/register.go @@ -1,7 +1,7 @@ package convert import ( - "excel_merge/define" + "github.com/821869798/excel_merge/define" ) var convertModes map[string]define.IConvert diff --git a/define/system.go b/define/system.go new file mode 100644 index 0000000..a35562b --- /dev/null +++ b/define/system.go @@ -0,0 +1,10 @@ +package define + +type SystemType int + +const ( + SystemTypeNone = iota + SystemTypeWindows + SystemTypeLinux + SystemTypeMac +) diff --git a/diff/diff.go b/diff/diff.go index d405228..de12471 100644 --- a/diff/diff.go +++ b/diff/diff.go @@ -1,12 +1,13 @@ package diff import ( - "excel_merge/config" - "excel_merge/convert" - "excel_merge/define" - "excel_merge/source" - "excel_merge/util" "fmt" + "github.com/821869798/excel_merge/config" + "github.com/821869798/excel_merge/convert" + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/source" + "github.com/821869798/fankit/fanpath" + "github.com/821869798/fankit/fanstr" "github.com/gookit/slog" "os" "os/exec" @@ -28,8 +29,8 @@ func Run(fileList []string) { defer os.Remove(file2) } - diffArg := util.FormatFieldName(config.GlobalConfig.DiffArgs, "left", file1, "right", file2) - cmd := exec.Command(util.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) + diffArg := fanstr.FormatFieldName(config.GlobalConfig.DiffArgs, "left", file1, "right", file2) + cmd := exec.Command(fanpath.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) output, err := cmd.CombinedOutput() exitCode := cmd.ProcessState.ExitCode() if nil != err && !define.IsCompareExitCodeSafe(config.GlobalConfig.CompareTools, exitCode) { @@ -62,7 +63,7 @@ func convertFile(file string) string { return "" } - err = util.CreateDirIfNoExist(filepath.Dir(outputFile)) + err = fanpath.CreateDirIfNoExist(filepath.Dir(outputFile)) if err != nil { slog.Panicf("[diff] %v", err) return "" diff --git a/diff/diff_test.go b/diff/diff_test.go index 54f81f4..1691314 100644 --- a/diff/diff_test.go +++ b/diff/diff_test.go @@ -1,7 +1,8 @@ package diff import ( - "excel_merge/util" + "github.com/821869798/fankit/fanpath" + "github.com/821869798/fankit/fanstr" "os" "strings" "testing" @@ -25,8 +26,8 @@ func TestFunc1(t *testing.T) { file := "my file.txt" err := "file not found" - result := util.FormatFieldName("File {file} had error {error}", "file", file, "error", err) + result := fanstr.FormatFieldName("File {file} had error {error}", "file", file, "error", err) t.Logf(strings.Join(result, "|")) - t.Logf(util.GetFileNameWithoutExt("qwe.txt")) + t.Logf(fanpath.GetFileNameWithoutExt("qwe.txt")) } diff --git a/doc/img/complete_register.png b/doc/img/complete_register.png new file mode 100644 index 0000000000000000000000000000000000000000..22df896ebca3923d2c07976c87dc8c1a3275c4ee GIT binary patch literal 66792 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 SYz9aPIda(iP{u*WpZ^b&@mjC| literal 0 HcmV?d00001 diff --git a/doc/img/select_register.png b/doc/img/select_register.png new file mode 100644 index 0000000000000000000000000000000000000000..642ca6c1e1d816fab7b49a53b322cf21e720e704 GIT binary patch literal 35157 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 literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod index 1d5c0db..372ee4c 100644 --- a/go.mod +++ b/go.mod @@ -1,27 +1,54 @@ -module excel_merge +module github.com/821869798/excel_merge go 1.20 require ( + github.com/821869798/fankit v0.0.2 + github.com/AlecAivazis/survey/v2 v2.3.7 github.com/BurntSushi/toml v1.3.2 github.com/gookit/slog v0.5.4 + github.com/ncruces/zenity v0.10.10 github.com/xuri/excelize/v2 v2.7.1 + golang.org/x/sys v0.10.0 ) require ( + github.com/akavel/rsrc v0.10.2 // indirect + github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f // indirect + github.com/getlantern/byteexec v0.0.0-20220903141943-7db46f110fbc // indirect + github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect + github.com/getlantern/elevate v0.0.0-20220903142053-479ab992b264 // indirect + github.com/getlantern/errors v1.0.1 // indirect + github.com/getlantern/filepersist v0.0.0-20210901195658-ed29a1cb0b7c // indirect + github.com/getlantern/golog v0.0.0-20211223150227-d4d95a44d873 // indirect + github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 // indirect + github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect + github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect + github.com/go-stack/stack v1.8.0 // indirect github.com/gookit/color v1.5.4 // indirect github.com/gookit/goutil v0.6.12 // indirect github.com/gookit/gsr v0.1.0 // indirect + github.com/josephspurrier/goversioninfo v1.4.0 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/mattn/go-colorable v0.1.2 // indirect + github.com/mattn/go-isatty v0.0.8 // indirect + github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect + github.com/randall77/makefat v0.0.0-20210315173500-7ddd0e42c844 // indirect github.com/richardlehane/mscfb v1.0.4 // indirect github.com/richardlehane/msoleps v1.0.3 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect + go.uber.org/atomic v1.7.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + go.uber.org/zap v1.19.1 // indirect golang.org/x/crypto v0.8.0 // indirect + golang.org/x/image v0.10.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.10.0 // indirect + golang.org/x/term v0.10.0 // indirect golang.org/x/text v0.11.0 // indirect ) diff --git a/go.sum b/go.sum index 233e81e..418bfa0 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,42 @@ +github.com/821869798/fankit v0.0.2 h1:sNxHchkG9sfgdb6+uYoD6k/yaqCuEpagGgjFmnieb5k= +github.com/821869798/fankit v0.0.2/go.mod h1:73w1EUt6i92eswVBeuUVVmHtjidOqcVsmwL3beokqQA= +github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= +github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= +github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw= +github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= +github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f h1:OGqDDftRTwrvUoL6pOG7rYTmWsTCvyEWFsMjg+HcOaA= +github.com/dchest/jsmin v0.0.0-20220218165748-59f39799265f/go.mod h1:Dv9D0NUlAsaQcGQZa5kc5mqR9ua72SmA8VXi4cd+cBw= +github.com/getlantern/byteexec v0.0.0-20220903141943-7db46f110fbc h1:npKLx1Gx+m6MaKnS+QVvw6wtvtf9ado42/mn8KYjD54= +github.com/getlantern/byteexec v0.0.0-20220903141943-7db46f110fbc/go.mod h1:oD9q9NB1LNBLHk3WAwza4tivxV7tm7jKFlCNCAv3+M8= +github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= +github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= +github.com/getlantern/elevate v0.0.0-20220903142053-479ab992b264 h1:q50MSzoIIKotG7apUYaDME/bNGhOJMjG33Fpfc7KPWM= +github.com/getlantern/elevate v0.0.0-20220903142053-479ab992b264/go.mod h1:2VB8zy/kMNX347i5fdusJbPNAZE26u8qoHJDy7CWP9A= +github.com/getlantern/errors v1.0.1 h1:XukU2whlh7OdpxnkXhNH9VTLVz0EVPGKDV5K0oWhvzw= +github.com/getlantern/errors v1.0.1/go.mod h1:l+xpFBrCtDLpK9qNjxs+cHU6+BAdlBaxHqikB6Lku3A= +github.com/getlantern/filepersist v0.0.0-20210901195658-ed29a1cb0b7c h1:mcz27xtAkb1OuOLBct/uFfL1p3XxAIcFct82GbT+UZM= +github.com/getlantern/filepersist v0.0.0-20210901195658-ed29a1cb0b7c/go.mod h1:8DGAx0LNUfXNnEH+fXI0s3OCBA/351kZCiz/8YSK3i8= +github.com/getlantern/golog v0.0.0-20211223150227-d4d95a44d873 h1:nnod94N4hMKb7pyJmnXDk+HR23o1S2CbZ4oMKzHbp9A= +github.com/getlantern/golog v0.0.0-20211223150227-d4d95a44d873/go.mod h1:+ZU1h+iOVqWReBpky6d5Y2WL0sF2Llxu+QcxJFs2+OU= +github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 h1:micT5vkcr9tOVk1FiH8SWKID8ultN44Z+yzd2y/Vyb0= +github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7/go.mod h1:dD3CgOrwlzca8ed61CsZouQS5h5jIzkK9ZWrTcf0s+o= +github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 h1:XYzSdCbkzOC0FDNrgJqGRo8PCMFOBFL9py72DRs7bmc= +github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55/go.mod h1:6mmzY2kW1TOOrVy+r41Za2MxXM+hhqTtY3oBKd2AgFA= +github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f h1:wrYrQttPS8FHIRSlsrcuKazukx/xqO/PpLZzZXsF+EA= +github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/gookit/goutil v0.6.12 h1:73vPUcTtVGXbhSzBOFcnSB1aJl7Jq9np3RAE50yIDZc= @@ -11,10 +45,33 @@ github.com/gookit/gsr v0.1.0 h1:0gadWaYGU4phMs0bma38t+Do5OZowRMEVlHv31p0Zig= github.com/gookit/gsr v0.1.0/go.mod h1:7wv4Y4WCnil8+DlDYHBjidzrEzfHhXEoFjEA0pPPWpI= github.com/gookit/slog v0.5.4 h1:EMctf/kap/SR8cnhkUucL0D3YZwUAJJ+WKQ/DN6kS5s= github.com/gookit/slog v0.5.4/go.mod h1:awroa12zroMvjFpS7tdpTX12AqIzVewUlC10tsj4TYY= +github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= +github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= +github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8= +github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +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= +github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/ncruces/zenity v0.10.10 h1:V/rtAhr5QLdDThahOkm7EYlnw4RuEsf7oN+Xb6lz1j0= +github.com/ncruces/zenity v0.10.10/go.mod h1:k3k4hJ4Wt1MUbeV48y+Gbl7Fp9skfGszN/xtKmuvhZk= +github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= +github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/randall77/makefat v0.0.0-20210315173500-7ddd0e42c844 h1:GranzK4hv1/pqTIhMTXt2X8MmMOuH3hMeUR0o9SP5yc= +github.com/randall77/makefat v0.0.0-20210315173500-7ddd0e42c844/go.mod h1:T1TLSfyWVBRXVGzWd0o9BI4kfoO9InEgfQe4NV3mLz8= github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM= github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= @@ -22,6 +79,9 @@ github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -35,29 +95,50 @@ github.com/xuri/excelize/v2 v2.7.1 h1:gm8q0UCAyaTt3MEF5wWMjVdmthm2EHAWesGSKS9tdV github.com/xuri/excelize/v2 v2.7.1/go.mod h1:qc0+2j4TvAUrBw36ATtcTeC1VCM0fFdAXZOmcF4nTpY= github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M= github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561 h1:MDc5xs78ZrZr3HMQugiXOAkSZtfTpbJLDr/lwfgO53E= -golang.org/x/image v0.5.0 h1:5JMiNunQeQw++mMOz48/ISeNu3Iweh/JaZU8ZLqHRrI= golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= +golang.org/x/image v0.10.0 h1:gXjUUtwtx5yOE0VKWq1CH4IJAClq4UGgUA3i+rpON9M= +golang.org/x/image v0.10.0/go.mod h1:jtrku+n79PfroUbvDdeUWMAI+heR786BofxrbiSF+J0= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +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-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -69,19 +150,30 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +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= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go index 40de2b0..ebfd6e0 100644 --- a/main.go +++ b/main.go @@ -1,12 +1,14 @@ package main import ( - "excel_merge/config" - "excel_merge/diff" - "excel_merge/merge" - "excel_merge/util" "flag" "fmt" + "github.com/821869798/excel_merge/config" + "github.com/821869798/excel_merge/diff" + "github.com/821869798/excel_merge/merge" + "github.com/821869798/excel_merge/register_tools" + "github.com/821869798/fankit/console" + "github.com/821869798/fankit/fanpath" "github.com/gookit/slog" "os" ) @@ -39,12 +41,19 @@ func main() { defer func() { if err := recover(); err != nil { slog.Errorf("[main] catch exception: %v", err) - util.AnyKeyToQuit() + console.AnyKeyToQuit() os.Exit(1) } }() - err := config.ParseConfig(*conf) + // 初始化执行目录 + err := fanpath.InitExecutePath() + if err != nil { + slog.Panicf("init execute path error:%v", err) + } + + // 加载配置文件 + err = config.ParseConfig(*conf) if err != nil { slog.Panicf("Load config toml file failed: %v", err) } else { @@ -70,6 +79,8 @@ func main() { diff.Run(fileList) } else if len(fileList) == 4 { merge.Run(fileList) + } else if len(fileList) == 0 { + register_tools.Run() } else { usage() } diff --git a/merge/merge.go b/merge/merge.go index c637f46..6df8a84 100644 --- a/merge/merge.go +++ b/merge/merge.go @@ -1,20 +1,22 @@ package merge import ( - "bufio" "errors" - "excel_merge/config" - "excel_merge/convert" - "excel_merge/define" - "excel_merge/source" - "excel_merge/util" "fmt" + "github.com/821869798/excel_merge/config" + "github.com/821869798/excel_merge/convert" + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/source" + "github.com/821869798/fankit/console" + "github.com/821869798/fankit/fanpath" + "github.com/821869798/fankit/fanstr" + "github.com/AlecAivazis/survey/v2" + _ "github.com/AlecAivazis/survey/v2" "github.com/gookit/slog" "github.com/xuri/excelize/v2" "os" "os/exec" "path/filepath" - "strconv" "strings" "time" ) @@ -28,8 +30,8 @@ func Run(fileList []string) { if !define.IsExcelFile(outputFilePath) { // 非Excel文件,直接调用对比工具 slog.Infof("[merge]The merge file is not an Excel file, start comparison tools directly.") - diffArg := util.FormatFieldName(config.GlobalConfig.MergeArgs, "base", originBaseFile, "remote", originRemoteFile, "local", originLocalFile, "output", outputFilePath) - cmd := exec.Command(util.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) + diffArg := fanstr.FormatFieldName(config.GlobalConfig.MergeArgs, "base", originBaseFile, "remote", originRemoteFile, "local", originLocalFile, "output", outputFilePath) + cmd := exec.Command(fanpath.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) output, err := cmd.CombinedOutput() if nil != err { slog.Panicf("[merge]execute compare tool output:%s\nerror:%v", output, err) @@ -37,14 +39,14 @@ func Run(fileList []string) { return } - err := util.CreateDirIfNoExist(util.RelExecuteDir(define.WorkMergeTempDir)) + err := fanpath.CreateDirIfNoExist(fanpath.RelExecuteDir(define.WorkMergeTempDir)) if err != nil { slog.Panicf("[merge]Back local file error: %v", err) } - if util.ExistFile(outputFilePath) { - backupFile := util.RelExecuteDir(define.WorkMergeTempDir, filepath.Base(outputFilePath)) - err = util.CopyFile(outputFilePath, backupFile) + if fanpath.ExistFile(outputFilePath) { + backupFile := fanpath.RelExecuteDir(define.WorkMergeTempDir, filepath.Base(outputFilePath)) + err = fanpath.CopyFile(outputFilePath, backupFile) if err != nil { slog.Panicf("[merge]Back local file copy error: %v", err) } @@ -62,24 +64,24 @@ func Run(fileList []string) { fileName := filepath.Base(outputFilePath) tmpOutputFileName := strings.TrimSuffix(fileName, filepath.Ext(fileName)) + "." + config.GlobalConfig.MergeOutputType - tmpOutputFile := util.RelExecuteDir(define.WorkMergeTempDir, tmpOutputFileName) + tmpOutputFile := fanpath.RelExecuteDir(define.WorkMergeTempDir, tmpOutputFileName) - if util.ExistFile(tmpOutputFile) { + if fanpath.ExistFile(tmpOutputFile) { err = os.Remove(tmpOutputFile) if err != nil { slog.Panicf("[merge] remove tmp output file error: %v", err) } } - diffArg := util.FormatFieldName(config.GlobalConfig.MergeArgs, "base", baseFile, "remote", remoteFile, "local", localFile, "output", tmpOutputFile) - cmd := exec.Command(util.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) + diffArg := fanstr.FormatFieldName(config.GlobalConfig.MergeArgs, "base", baseFile, "remote", remoteFile, "local", localFile, "output", tmpOutputFile) + cmd := exec.Command(fanpath.AbsOrRelExecutePath(config.GlobalConfig.CompareTools), diffArg...) output, err := cmd.CombinedOutput() if nil != err { slog.Panicf("[merge]execute compare tool output:%s\nerror:%v", output, err) } slog.Infof(string(output)) - selectNumber := selectBaseFile() + selectNumber := selectMergeBase() var mergeExcelFiles []string switch selectNumber { case 1: @@ -94,7 +96,7 @@ func Run(fileList []string) { return } slog.Infof("[merge] excel file complete:%s", outputFilePath) - util.AnyKeyToQuit() + console.AnyKeyToQuit() } func convertFile(file string) string { @@ -110,7 +112,7 @@ func convertFile(file string) string { outputFileName := fmt.Sprintf("%s-%d.%s", fileNameWithoutExt, timestamp, config.GlobalConfig.MergeOutputType) outputFile := filepath.Join(os.TempDir(), define.WorkGenCSVDir, outputFileName) - err = util.CreateDirIfNoExist(filepath.Dir(outputFile)) + err = fanpath.CreateDirIfNoExist(filepath.Dir(outputFile)) if err != nil { slog.Panicf("%v", err) return "" @@ -125,29 +127,19 @@ func convertFile(file string) string { return outputFile } -func selectBaseFile() int { - fmt.Printf(`Select base excel file to merge. +func selectMergeBase() int { + var answer survey.OptionAnswer + prompt := &survey.Select{ + Message: `Select base excel file to merge. The data is merged, but the formatting in the excel file of your choice is preferred. -数据是合并后的,但是优先保留你选择的excel文件中的格式。 -1. remote (基于远程分支excel结构) -2. local (基于本地分支excel结构)`) - reader := bufio.NewReader(os.Stdin) - for { - fmt.Printf("\nPlease enter your selection number(请输入你的选择数字):") - input, err := reader.ReadString('\n') - if err != nil { - fmt.Printf("input error:%v", err) - } - number, err := strconv.ParseInt(strings.TrimSpace(input), 10, 64) - if err != nil { - fmt.Printf("input error:%v", err) - } - if number > 2 || number < 1 { - fmt.Printf("input error number error!") - } else { - return int(number) - } +数据是合并后的,但是优先保留你选择的excel文件中的格式`, + Options: []string{"1. remote (基于远程分支excel结构)", "2. local (基于本地分支excel结构)"}, + } + err := survey.AskOne(prompt, &answer) + if err != nil { + slog.Panicf("[merge] select merge base excel file error: %v", err) } + return answer.Index + 1 } // mergeToExcel 将csvFile写入到excel中 diff --git a/register_tools/compare/compare.go b/register_tools/compare/compare.go new file mode 100644 index 0000000..0deda3f --- /dev/null +++ b/register_tools/compare/compare.go @@ -0,0 +1,32 @@ +package compare + +import ( + "github.com/821869798/excel_merge/define" +) + +type ICompareTools interface { + Name() string + SupportSystem() define.SystemType + GetExecuteFilePath() (string, bool) +} + +var ( + compareToolsRegister []ICompareTools +) + +func init() { + // TODO 支持更多工具 + compareToolsRegister = []ICompareTools{ + &winBeyondCompare{}, + } +} + +func SupportCompareTools(systemType define.SystemType) []ICompareTools { + var compares []ICompareTools + for _, c := range compareToolsRegister { + if c.SupportSystem() == systemType { + compares = append(compares, c) + } + } + return compares +} diff --git a/register_tools/compare/win_bc.go b/register_tools/compare/win_bc.go new file mode 100644 index 0000000..0279209 --- /dev/null +++ b/register_tools/compare/win_bc.go @@ -0,0 +1,48 @@ +package compare + +import ( + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/register_tools/reg" + "golang.org/x/sys/windows/registry" + "strings" +) + +type winBeyondCompare struct { +} + +func (w *winBeyondCompare) Name() string { + return "Beyond Compare" +} + +func (w *winBeyondCompare) SupportSystem() define.SystemType { + return define.SystemTypeWindows +} + +func (w *winBeyondCompare) GetExecuteFilePath() (string, bool) { + value, err := reg.ReadRegistry(registry.LOCAL_MACHINE, `SOFTWARE\Classes\BeyondCompare.SettingsPackage\shell\open\command`, "") + if err == nil { + path, ok := parseBCPath(value) + if ok { + return path, true + } + } + return "", false +} + +func parseBCPath(str string) (string, bool) { + // 查找第一个双引号的位置 + firstQuoteIndex := strings.Index(str, "\"") + if firstQuoteIndex == -1 { + return "", false + } + + // 从第一个双引号之后查找第二个双引号的位置 + secondQuoteIndex := strings.Index(str[firstQuoteIndex+1:], "\"") + if secondQuoteIndex == -1 { + return "", false + } + + // 提取双引号中的内容 + content := str[firstQuoteIndex+1 : firstQuoteIndex+1+secondQuoteIndex] + return content, true +} diff --git a/register_tools/entry.go b/register_tools/entry.go new file mode 100644 index 0000000..4ab6c8c --- /dev/null +++ b/register_tools/entry.go @@ -0,0 +1,169 @@ +package register_tools + +import ( + "errors" + "fmt" + "github.com/821869798/excel_merge/config" + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/register_tools/compare" + "github.com/821869798/excel_merge/register_tools/scm" + "github.com/821869798/fankit/admin" + "github.com/821869798/fankit/console" + "github.com/821869798/fankit/fanpath" + "github.com/AlecAivazis/survey/v2" + "github.com/gookit/slog" + "github.com/ncruces/zenity" + "os" + "runtime" +) + +var ( + registerSCMs []scm.IRegisterSCM = make([]scm.IRegisterSCM, 0) +) + +func init() { + registerSCMs = append(registerSCMs, scm.NewRegisterTortoiseGit()) + registerSCMs = append(registerSCMs, scm.NewRegisterTortoiseSVN()) + registerSCMs = append(registerSCMs, scm.NewRegisterFork()) +} + +func Run() { + var currentSystem define.SystemType = define.SystemTypeNone + switch runtime.GOOS { + case "windows": + currentSystem = define.SystemTypeWindows + if !admin.IsAdministrator() { + err := admin.StartRunAdministrator(fanpath.ExecuteFilePath(), []string{}) + if err != nil { + slog.Panicf("run as administrator error:%v", err) + } + os.Exit(200) + } + case "linux": + currentSystem = define.SystemTypeLinux + case "darwin": + currentSystem = define.SystemTypeMac + } + // 判断当前支持注册的工具 + supportRegisters := make([]scm.IRegisterSCM, 0) + for _, scm := range registerSCMs { + if scm.SupportSystem() == currentSystem { + supportRegisters = append(supportRegisters, scm) + } + } + + if len(supportRegisters) <= 0 { + slog.Panicf("[register] The current system does not support registration tools(当前系统不支持注册工具)") + } + + // 通过对话框选择对比工具 + filePath, err := SelectCompareTools(currentSystem) + if err != nil { + slog.Panicf("[register] select compare_tools error: %v", err) + return + } + + // 更新配置文件 + config.GlobalConfig.CompareTools = filePath + err = config.UpdateCompareTool(filePath) + if err != nil { + slog.Panicf("[register] Unable to update config file(无法更新配置文件):%v", err) + return + } + + // 选择需要执行的注册工具 + var options = make([]string, len(supportRegisters)) + var checked = make(map[int]bool, len(supportRegisters)) + for index, scm := range supportRegisters { + options[index] = scm.Name() + checked[index] = true + } + + // 选择注册的scm工具 + var answers = make([]survey.OptionAnswer, 0, len(supportRegisters)) + prompt := &survey.MultiSelect{ + Message: "Please select the SCM tool that needs to be registered(请选择需要注册的SCM工具,选择好后回车):", + Options: options, + Default: options, + } + err = survey.AskOne(prompt, &answers, survey.WithIcons(func(icons *survey.IconSet) { + // you can set any icons + icons.MarkedOption.Text = "[√]" + })) + if err != nil { + slog.Panicf("[register] select register_tools scm error: %v", err) + return + } + + if len(answers) == 0 { + slog.Info("[register] No SCM tool is registered(没有选择注册SCM工具)") + return + } + + // 开始注册 + for _, ans := range answers { + scm := supportRegisters[ans.Index] + ok := scm.Register(fanpath.ExecuteFilePath()) + if ok { + slog.Infof("[register] register_tools success(注册SCM工具成功): %s", scm.Name()) + } else { + slog.Infof("[register] Failed to register SCM tool, possibly not installed or open\n(注册SCM工具失败,可能是没有安装,或者是打开状态): %s", scm.Name()) + } + } + + slog.Infof("Registration completed, please reopen the version tool(注册完毕,请重新打开版本工具)") + + console.AnyKeyToQuit() +} + +// SelectCompareTools 选择对比工具 +func SelectCompareTools(currentSystem define.SystemType) (string, error) { + // 选择对比工具 + compareTools := compare.SupportCompareTools(currentSystem) + var supportToolsPath []string + var supportToolsName []string + for _, ct := range compareTools { + toolsPath, ok := ct.GetExecuteFilePath() + if ok { + supportToolsPath = append(supportToolsPath, toolsPath) + supportToolsName = append(supportToolsName, ct.Name()) + } + } + if len(supportToolsName) <= 0 { + // 直接选择自定义工具 + return SelectCustomCompareTools(currentSystem) + } + + supportToolsName = append(supportToolsName, "Select Custom(选择自定义)") + + var answer survey.OptionAnswer + prompt := &survey.Select{ + Message: `Please select a basic comparison tool(Please select a basic comparison tool):`, + Options: supportToolsName, + } + err := survey.AskOne(prompt, &answer) + if err != nil { + return "", errors.New(fmt.Sprintf("[register] select compare tools failed error: %v", err)) + } + + if answer.Index == len(supportToolsName)-1 { + return SelectCustomCompareTools(currentSystem) + } + + return supportToolsPath[answer.Index], nil +} + +// SelectCustomCompareTools 通过对话框选择对比工具 +func SelectCustomCompareTools(currentSystem define.SystemType) (string, error) { + extensions := "*.*" + if currentSystem == define.SystemTypeWindows { + extensions = "*.exe" + } + + filePath, err := zenity.SelectFile( + zenity.Title("Please select a comparison tool(请选择对比工具,例如Beyond Compare)"), + zenity.FileFilters{ + {fmt.Sprintf("execute file(%s)", extensions), []string{extensions}, true}, + }) + return filePath, err +} diff --git a/register_tools/reg/reg.go b/register_tools/reg/reg.go new file mode 100644 index 0000000..af6c565 --- /dev/null +++ b/register_tools/reg/reg.go @@ -0,0 +1,13 @@ +//go:build !windows + +package reg + +import "errors" + +func ReadRegistry(k registry.Key, path, key string) (string, error) { + return "", errors.New("not support in current system") +} + +func WriteRegistry(k registry.Key, path, key, value string) error { + return errors.New("not support in current system") +} diff --git a/register_tools/reg/reg_windows.go b/register_tools/reg/reg_windows.go new file mode 100644 index 0000000..09525e1 --- /dev/null +++ b/register_tools/reg/reg_windows.go @@ -0,0 +1,34 @@ +//go:build windows + +package reg + +import ( + "golang.org/x/sys/windows/registry" +) + +func ReadRegistry(k registry.Key, path, key string) (string, error) { + // 打开注册表项 + k, err := registry.OpenKey(k, path, registry.QUERY_VALUE) + if err != nil { + return "", err + } + defer k.Close() + + // 获取注册表键 + value, _, err := k.GetStringValue(key) + if err != nil { + return "", err + } + return value, nil +} + +func WriteRegistry(k registry.Key, path, key, value string) error { + k, err := registry.OpenKey(k, path, registry.SET_VALUE) + if err != nil { + return err + } + defer k.Close() + + err = k.SetStringValue(key, value) + return err +} diff --git a/register_tools/scm/iregister.go b/register_tools/scm/iregister.go new file mode 100644 index 0000000..7cc2ebc --- /dev/null +++ b/register_tools/scm/iregister.go @@ -0,0 +1,11 @@ +package scm + +import ( + "github.com/821869798/excel_merge/define" +) + +type IRegisterSCM interface { + Name() string + SupportSystem() define.SystemType + Register(toolPath string) bool +} diff --git a/register_tools/scm/scm_test.go b/register_tools/scm/scm_test.go new file mode 100644 index 0000000..a60f65c --- /dev/null +++ b/register_tools/scm/scm_test.go @@ -0,0 +1,16 @@ +package scm + +import ( + "os" + "testing" +) + +func TestAppData(t *testing.T) { + cacheDir, err := os.UserCacheDir() + if err != nil { + t.Errorf("无法获取用户的缓存目录:%v", err) + return + } + t.Logf("path:%v", cacheDir) + +} diff --git a/register_tools/scm/tortoise_git.go b/register_tools/scm/tortoise_git.go new file mode 100644 index 0000000..447fd90 --- /dev/null +++ b/register_tools/scm/tortoise_git.go @@ -0,0 +1,64 @@ +package scm + +import ( + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/register_tools/reg" + "golang.org/x/sys/windows/registry" +) + +type RegisterTortoiseGit struct { +} + +func NewRegisterTortoiseGit() *RegisterTortoiseGit { + return &RegisterTortoiseGit{} +} + +func (r *RegisterTortoiseGit) Name() string { + return "TortoiseGit" +} + +func (r *RegisterTortoiseGit) SupportSystem() define.SystemType { + return define.SystemTypeWindows +} + +func (r *RegisterTortoiseGit) Register(toolPath string) bool { + err := reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit`, "Diff", toolPath) + if err != nil { + return false + } + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit`, "Merge", toolPath) + if err != nil { + return false + } + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\DiffTools`, ".xlsx", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\DiffTools`, ".xlsm", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\DiffTools`, ".xls", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\MergeTools`, ".xlsx", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\MergeTools`, ".xlsm", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseGit\MergeTools`, ".xls", toolPath) + if err != nil { + return false + } + + return true +} diff --git a/register_tools/scm/tortoise_svn.go b/register_tools/scm/tortoise_svn.go new file mode 100644 index 0000000..1ce3067 --- /dev/null +++ b/register_tools/scm/tortoise_svn.go @@ -0,0 +1,64 @@ +package scm + +import ( + "github.com/821869798/excel_merge/define" + "github.com/821869798/excel_merge/register_tools/reg" + "golang.org/x/sys/windows/registry" +) + +type RegisterTortoiseSVN struct { +} + +func NewRegisterTortoiseSVN() *RegisterTortoiseSVN { + return &RegisterTortoiseSVN{} +} + +func (r *RegisterTortoiseSVN) Name() string { + return "TortoiseSVN" +} + +func (r *RegisterTortoiseSVN) SupportSystem() define.SystemType { + return define.SystemTypeWindows +} + +func (r *RegisterTortoiseSVN) Register(toolPath string) bool { + err := reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN`, "Diff", toolPath) + if err != nil { + return false + } + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN`, "Merge", toolPath) + if err != nil { + return false + } + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\DiffTools`, ".xlsx", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\DiffTools`, ".xlsm", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\DiffTools`, ".xls", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\MergeTools`, ".xlsx", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\MergeTools`, ".xlsm", toolPath) + if err != nil { + return false + } + + err = reg.WriteRegistry(registry.CURRENT_USER, `SOFTWARE\TortoiseSVN\MergeTools`, ".xls", toolPath) + if err != nil { + return false + } + + return true +} diff --git a/register_tools/scm/win_fork.go b/register_tools/scm/win_fork.go new file mode 100644 index 0000000..d8ac1ae --- /dev/null +++ b/register_tools/scm/win_fork.go @@ -0,0 +1,78 @@ +package scm + +import ( + "encoding/json" + "github.com/821869798/excel_merge/define" + "os" + "os/exec" + "path/filepath" +) + +type RegisterFork struct { +} + +func NewRegisterFork() *RegisterFork { + return &RegisterFork{} +} + +func (r *RegisterFork) Name() string { + return "Fork" +} + +func (r *RegisterFork) SupportSystem() define.SystemType { + return define.SystemTypeWindows +} + +func (r *RegisterFork) Register(toolPath string) bool { + localPath, err := os.UserCacheDir() + if err != nil { + return false + } + + err = killProcess("Fork.exe") + if err != nil { + return false + } + + forkSettingPath := filepath.Join(localPath, "Fork", "settings.json") + + jsonData, err := os.ReadFile(forkSettingPath) + if err != nil { + return false + } + + // 解码 JSON 数据为 map[string]interface{} + var data map[string]interface{} + err = json.Unmarshal(jsonData, &data) + if err != nil { + return false + } + + // 修改配置 + data["MergeTool"] = map[string]interface{}{ + "Type": "BeyondCompare", + "ApplicationPath": toolPath, + } + + data["ExternalDiffTool"] = map[string]interface{}{ + "Type": "BeyondCompare", + "ApplicationPath": toolPath, + } + updatedJSON, err := json.MarshalIndent(data, "", " ") + if err != nil { + return false + } + + // 将 JSON 字节切片写入回原始文件 + err = os.WriteFile(forkSettingPath, updatedJSON, 0755) + if err != nil { + return false + } + + return true +} + +func killProcess(name string) error { + cmd := exec.Command("taskkill", "/IM", name, "/F") + return cmd.Run() +} diff --git a/source/read_excel.go b/source/read_excel.go index aa5e05e..6c9bdc9 100644 --- a/source/read_excel.go +++ b/source/read_excel.go @@ -1,7 +1,7 @@ package source import ( - "excel_merge/define" + "github.com/821869798/excel_merge/define" "github.com/xuri/excelize/v2" ) diff --git a/util/console.go b/util/console.go deleted file mode 100644 index e532620..0000000 --- a/util/console.go +++ /dev/null @@ -1,12 +0,0 @@ -package util - -import ( - "fmt" - "os" -) - -func AnyKeyToQuit() { - fmt.Printf("Press any key to exit...") - b := make([]byte, 1) - _, _ = os.Stdin.Read(b) -} diff --git a/util/filepath.go b/util/filepath.go deleted file mode 100644 index 8e47556..0000000 --- a/util/filepath.go +++ /dev/null @@ -1,191 +0,0 @@ -package util - -import ( - "github.com/gookit/slog" - "io" - "os" - "path/filepath" - "regexp" - "strings" -) - -var executeDir string - -func init() { - exePath, err := os.Executable() - if err != nil { - slog.Panicf("init execute path error:%v", err) - } - executeDir = filepath.Dir(exePath) - //dir, err := filepath.Abs(filepath.Dir(os.Args[0])) - //if err != nil { - // slog.Panicf("init execute path error:%v", err) - //} - //executeDir = dir -} - -// RelExecuteDir 获取相对可执行文件所在目录 -func RelExecuteDir(paths ...string) string { - paths = append([]string{executeDir}, paths...) - return filepath.Join(paths...) -} - -// AbsOrRelExecutePath 获取绝对路径或者相对可执行文件所在目录的路径 -func AbsOrRelExecutePath(path string) string { - if filepath.IsAbs(path) { - return path - } - return RelExecuteDir(path) -} - -// SetWorkDirToExecuteDir 把工作目录设置为exe的目录 -func SetWorkDirToExecuteDir() error { - err := os.Chdir(executeDir) - return err -} - -// ExistPath 路径是否存在 -func ExistPath(path string) bool { - _, err := os.Stat(path) - return err == nil -} - -// ExistFile 文件是否存在 -func ExistFile(path string) bool { - f, err := os.Stat(path) - if err != nil { - return false - } - - return !f.IsDir() -} - -// ExistDir 文件夹是否存在 -func ExistDir(path string) bool { - f, err := os.Stat(path) - if err != nil { - return false - } - - return f.IsDir() -} - -// CreateDirIfNoExist 如果目录不存在就创建 -func CreateDirIfNoExist(path string) error { - if ExistDir(path) { - return nil - } - return os.MkdirAll(path, os.ModePerm) -} - -// GetFileListByExt 获取某个目录下ext扩展名的所有文件 -func GetFileListByExt(dir string, ext string) ([]string, error) { - var fileLists []string - err := filepath.Walk(dir, func(path string, f os.FileInfo, err error) error { - if f == nil { - return err - } - if f.IsDir() { - return nil - } - if filepath.Ext(path) == ext { - fileLists = append(fileLists, path) - } - return nil - }) - return fileLists, err -} - -// ClearDirAndCreateNew 清空目录并重新创建 -func ClearDirAndCreateNew(path string) error { - if ExistPath(path) { - err := os.RemoveAll(path) - if err != nil { - return err - } - } - err := os.MkdirAll(path, os.ModePerm) - return err -} - -// InitDirAndClearFile 初始化目录并清空目录下指定文件 -func InitDirAndClearFile(path string, removePattern string) error { - if !ExistPath(path) { - err := os.MkdirAll(path, os.ModePerm) - if err != nil { - return err - } - } - err := filepath.Walk(path, func(fileName string, f os.FileInfo, err error) error { - if ok, _ := regexp.MatchString(removePattern, fileName); !ok { - return nil - } - err = os.Remove(fileName) - return err - }) - return err -} - -// CopyFile 拷贝文件 -func CopyFile(src, dst string) error { - srcFile, err := os.Open(src) - if err != nil { - return err - } - defer srcFile.Close() - - err = CreateDirIfNoExist(filepath.Dir(dst)) - if err != nil { - return err - } - - dstFile, err := os.Create(dst) - if err != nil { - return err - } - defer dstFile.Close() - - if _, err := io.Copy(dstFile, srcFile); err != nil { - return err - } - - return dstFile.Sync() -} - -// CopyDir 拷贝目录 -func CopyDir(srcDir, dstDir string) error { - if !ExistPath(dstDir) { - err := os.MkdirAll(dstDir, os.ModePerm) - if err != nil { - return err - } - } - return filepath.Walk(srcDir, func(srcPath string, info os.FileInfo, err error) error { - if err != nil { - return err - } - - // Ignore the source directory. - if srcPath == srcDir { - return nil - } - - baseFileName := filepath.Base(srcPath) - // Calculate the destination path. - dstPath := filepath.Join(dstDir, baseFileName) - - // Check if it's a directory, create it if so. - if info.IsDir() { - return os.MkdirAll(dstPath, info.Mode()) - } - - // It's a file, so copy it. - return CopyFile(srcPath, dstPath) - }) -} - -// GetFileNameWithoutExt 获取文件名,不带后缀 -func GetFileNameWithoutExt(pathName string) string { - fileName := filepath.Base(pathName) - return strings.TrimSuffix(fileName, filepath.Ext(fileName)) -} diff --git a/util/format.go b/util/format.go deleted file mode 100644 index daf4255..0000000 --- a/util/format.go +++ /dev/null @@ -1,37 +0,0 @@ -package util - -import ( - "fmt" - "strings" -) - -// FormatByName FormatByName("File {file} had error {error}", "file", file, "error", err) -func FormatByName(format string, args ...interface{}) string { - args2 := make([]string, len(args)) - for i, v := range args { - if i%2 == 0 { - args2[i] = fmt.Sprintf("{%v}", v) - } else { - args2[i] = fmt.Sprint(v) - } - } - r := strings.NewReplacer(args2...) - return r.Replace(format) -} - -func FormatFieldName(format string, args ...string) []string { - fields := strings.Fields(format) - formatMapping := make(map[string]string) - for i := 0; i < len(args); i += 2 { - key := "{" + args[i] + "}" - value := args[i+1] - formatMapping[key] = value - } - for i, v := range fields { - if value, ok := formatMapping[v]; ok { - fields[i] = value - } - } - - return fields -}