Commit 8608eb47 authored by Michael Yang's avatar Michael Yang
Browse files

prune empty directories

parent a2b21013
...@@ -721,6 +721,15 @@ func RunServer(cmd *cobra.Command, _ []string) error { ...@@ -721,6 +721,15 @@ func RunServer(cmd *cobra.Command, _ []string) error {
if err := server.PruneLayers(); err != nil { if err := server.PruneLayers(); err != nil {
return err return err
} }
manifestsPath, err := server.GetManifestPath()
if err != nil {
return err
}
if err := server.PruneDirectory(manifestsPath); err != nil {
return err
}
} }
return server.Serve(ln, origins) return server.Serve(ln, origins)
......
...@@ -1005,6 +1005,39 @@ func PruneLayers() error { ...@@ -1005,6 +1005,39 @@ func PruneLayers() error {
return nil return nil
} }
func PruneDirectory(path string) error {
info, err := os.Lstat(path)
if err != nil {
return err
}
if info.IsDir() && info.Mode()&os.ModeSymlink == 0 {
entries, err := os.ReadDir(path)
if err != nil {
return err
}
for _, entry := range entries {
if err := PruneDirectory(filepath.Join(path, entry.Name())); err != nil {
return err
}
}
entries, err = os.ReadDir(path)
if err != nil {
return err
}
if len(entries) > 0 {
return nil
}
return os.Remove(path)
}
return nil
}
func DeleteModel(name string) error { func DeleteModel(name string) error {
mp := ParseModelPath(name) mp := ParseModelPath(name)
manifest, _, err := GetManifest(mp) manifest, _, err := GetManifest(mp)
......
...@@ -378,6 +378,18 @@ func DeleteModelHandler(c *gin.Context) { ...@@ -378,6 +378,18 @@ func DeleteModelHandler(c *gin.Context) {
} }
return return
} }
manifestsPath, err := GetManifestPath()
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
if err := PruneDirectory(manifestsPath); err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, nil) c.JSON(http.StatusOK, nil)
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment