兼容单文件处理
This commit is contained in:
@@ -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,29 +102,36 @@ func doMakeHash(makeTaskParams makeTaskParams) error {
|
|||||||
|
|
||||||
if !fsInfo.IsDir() {
|
if !fsInfo.IsDir() {
|
||||||
// 如果是文件,直接计算
|
// 如果是文件,直接计算
|
||||||
return doTaskMake(makeTaskParams)
|
err = doTaskMake(makeTaskParams)
|
||||||
}
|
if err != nil {
|
||||||
|
|
||||||
// 读取目录下信息
|
|
||||||
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 {
|
|
||||||
return err
|
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)
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user