兼容单文件处理
This commit is contained in:
@@ -81,7 +81,7 @@ func RunTaskMake(args ...string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
makeTaskParams := makeTaskParams{
|
||||
makeTaskParams := &makeTaskParams{
|
||||
sourcePath: *sourcePath,
|
||||
hashFile: *hashFile,
|
||||
task: &saasapi.Task{
|
||||
@@ -91,10 +91,10 @@ func RunTaskMake(args ...string) error {
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -102,29 +102,36 @@ func doMakeHash(makeTaskParams makeTaskParams) error {
|
||||
|
||||
if !fsInfo.IsDir() {
|
||||
// 如果是文件,直接计算
|
||||
return doTaskMake(makeTaskParams)
|
||||
}
|
||||
|
||||
// 读取目录下信息
|
||||
dirEntry, err := os.ReadDir(makeTaskParams.sourcePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 遍历目录
|
||||
for _, dir := range dirEntry {
|
||||
newParam := makeTaskParams
|
||||
newParam.sourcePath = path.Join(makeTaskParams.sourcePath, dir.Name())
|
||||
|
||||
if err = doMakeHash(newParam); err != nil {
|
||||
err = doTaskMake(makeTaskParams)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
// 读取目录下信息
|
||||
dirEntry, err := os.ReadDir(makeTaskParams.sourcePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 遍历目录
|
||||
for _, dir := range dirEntry {
|
||||
oldSourcePath := makeTaskParams.sourcePath
|
||||
makeTaskParams.sourcePath = path.Join(makeTaskParams.sourcePath, dir.Name())
|
||||
|
||||
if err = doMakeHash(makeTaskParams, false); err != nil {
|
||||
return err
|
||||
}
|
||||
makeTaskParams.sourcePath = oldSourcePath
|
||||
}
|
||||
}
|
||||
|
||||
return saveTaskFile(makeTaskParams)
|
||||
if firstLevel {
|
||||
return saveTaskFile(makeTaskParams)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func doTaskMake(makeTaskParams makeTaskParams) error {
|
||||
func doTaskMake(makeTaskParams *makeTaskParams) error {
|
||||
sourceFile, err := os.Open(makeTaskParams.sourcePath)
|
||||
if err != nil {
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user