windows: fix delete
This commit is contained in:
parent
eeb40a672c
commit
ae950b00f1
1 changed files with 27 additions and 27 deletions
|
@ -859,38 +859,38 @@ func DeleteModel(name string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = filepath.Walk(fp, func(path string, info os.FileInfo, err error) error {
|
|
||||||
|
walkFunc := func(path string, info os.FileInfo, _ error) error {
|
||||||
|
if info.IsDir() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
dir, file := filepath.Split(path)
|
||||||
|
dir = strings.Trim(strings.TrimPrefix(dir, fp), string(os.PathSeparator))
|
||||||
|
tag := strings.Join([]string{dir, file}, ":")
|
||||||
|
fmp := ParseModelPath(tag)
|
||||||
|
|
||||||
|
// skip the manifest we're trying to delete
|
||||||
|
if mp.GetFullTagname() == fmp.GetFullTagname() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// save (i.e. delete from the deleteMap) any files used in other manifests
|
||||||
|
manifest, _, err := GetManifest(fmp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
log.Printf("skipping file: %s", fp)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
if !info.IsDir() {
|
|
||||||
path := path[len(fp)+1:]
|
|
||||||
slashIndex := strings.LastIndex(path, "/")
|
|
||||||
if slashIndex == -1 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
tag := path[:slashIndex] + ":" + path[slashIndex+1:]
|
|
||||||
fmp := ParseModelPath(tag)
|
|
||||||
|
|
||||||
// skip the manifest we're trying to delete
|
for _, layer := range manifest.Layers {
|
||||||
if mp.GetFullTagname() == fmp.GetFullTagname() {
|
delete(deleteMap, layer.Digest)
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// save (i.e. delete from the deleteMap) any files used in other manifests
|
|
||||||
manifest, _, err := GetManifest(fmp)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("skipping file: %s", fp)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
for _, layer := range manifest.Layers {
|
|
||||||
delete(deleteMap, layer.Digest)
|
|
||||||
}
|
|
||||||
delete(deleteMap, manifest.Config.Digest)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete(deleteMap, manifest.Config.Digest)
|
||||||
return nil
|
return nil
|
||||||
})
|
}
|
||||||
if err != nil {
|
|
||||||
|
if err := filepath.Walk(fp, walkFunc); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue