兼容单文件处理

This commit is contained in:
algotao
2025-06-07 19:15:23 +08:00
parent b8c2a3a7d4
commit d1ad148725

View File

@@ -81,7 +81,7 @@ func RunTaskMake(args ...string) error {
return nil return nil
} }
makeTaskParams := makeTaskParams{ makeTaskParams := &makeTaskParams{
sourcePath: *sourcePath, sourcePath: *sourcePath,
hashFile: *hashFile, hashFile: *hashFile,
task: &saasapi.Task{ task: &saasapi.Task{
@@ -91,10 +91,10 @@ func RunTaskMake(args ...string) error {
DataspaceId: *ds, DataspaceId: *ds,
}, },
} }
return doMakeHash(makeTaskParams) return doMakeHash(makeTaskParams, true)
} }
func doMakeHash(makeTaskParams makeTaskParams) error { func doMakeHash(makeTaskParams *makeTaskParams, firstLevel bool) error {
fsInfo, err := os.Stat(makeTaskParams.sourcePath) fsInfo, err := os.Stat(makeTaskParams.sourcePath)
if err != nil { if err != nil {
return err return err
@@ -102,9 +102,11 @@ func doMakeHash(makeTaskParams makeTaskParams) error {
if !fsInfo.IsDir() { if !fsInfo.IsDir() {
// 如果是文件,直接计算 // 如果是文件,直接计算
return doTaskMake(makeTaskParams) err = doTaskMake(makeTaskParams)
if err != nil {
return err
} }
} else {
// 读取目录下信息 // 读取目录下信息
dirEntry, err := os.ReadDir(makeTaskParams.sourcePath) dirEntry, err := os.ReadDir(makeTaskParams.sourcePath)
if err != nil { if err != nil {
@@ -113,18 +115,23 @@ func doMakeHash(makeTaskParams makeTaskParams) error {
// 遍历目录 // 遍历目录
for _, dir := range dirEntry { for _, dir := range dirEntry {
newParam := makeTaskParams oldSourcePath := makeTaskParams.sourcePath
newParam.sourcePath = path.Join(makeTaskParams.sourcePath, dir.Name()) makeTaskParams.sourcePath = path.Join(makeTaskParams.sourcePath, dir.Name())
if err = doMakeHash(newParam); err != nil { if err = doMakeHash(makeTaskParams, false); err != nil {
return err return err
} }
makeTaskParams.sourcePath = oldSourcePath
}
} }
if firstLevel {
return saveTaskFile(makeTaskParams) return saveTaskFile(makeTaskParams)
} }
return nil
}
func doTaskMake(makeTaskParams makeTaskParams) error { func doTaskMake(makeTaskParams *makeTaskParams) error {
sourceFile, err := os.Open(makeTaskParams.sourcePath) sourceFile, err := os.Open(makeTaskParams.sourcePath)
if err != nil { if err != nil {
return err return err
@@ -227,7 +234,7 @@ func hashWorker(tasks <-chan *hashTask, results chan<- *hashTask) {
} }
} }
func saveTaskFile(makeTaskParams makeTaskParams) error { func saveTaskFile(makeTaskParams *makeTaskParams) error {
taskFile, err := os.Create(makeTaskParams.hashFile) taskFile, err := os.Create(makeTaskParams.hashFile)
if err != nil { if err != nil {
return err return err