]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/prune.c
tmp-objdir: new API for creating temporary writable databases
[thirdparty/git.git] / builtin / prune.c
index 02c6ab7cbaafbac6492fd458bedc0f162e81d683..5a344bb1b6fa9d66087ac6200d4fd963af3b3d22 100644 (file)
@@ -26,10 +26,22 @@ static int prune_tmp_file(const char *fullpath)
                return error("Could not stat '%s'", fullpath);
        if (st.st_mtime > expire)
                return 0;
-       if (show_only || verbose)
-               printf("Removing stale temporary file %s\n", fullpath);
-       if (!show_only)
-               unlink_or_warn(fullpath);
+       if (S_ISDIR(st.st_mode)) {
+               if (show_only || verbose)
+                       printf("Removing stale temporary directory %s\n", fullpath);
+               if (!show_only) {
+                       struct strbuf remove_dir_buf = STRBUF_INIT;
+
+                       strbuf_addstr(&remove_dir_buf, fullpath);
+                       remove_dir_recursively(&remove_dir_buf, 0);
+                       strbuf_release(&remove_dir_buf);
+               }
+       } else {
+               if (show_only || verbose)
+                       printf("Removing stale temporary file %s\n", fullpath);
+               if (!show_only)
+                       unlink_or_warn(fullpath);
+       }
        return 0;
 }