mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-02-02 22:37:24 +00:00
space use better delete logics
This commit is contained in:
@@ -5,7 +5,6 @@ import time
|
||||
import socket
|
||||
import gradio as gr
|
||||
import importlib.util
|
||||
import shutil
|
||||
|
||||
from gradio.context import Context
|
||||
from threading import Thread
|
||||
@@ -44,6 +43,28 @@ def find_free_port(server_name, start_port=None):
|
||||
port += 1
|
||||
|
||||
|
||||
def remove_dir(dir_path):
|
||||
for root, dirs, files in os.walk(dir_path, topdown=False):
|
||||
for name in files:
|
||||
try:
|
||||
os.remove(os.path.join(root, name))
|
||||
except Exception as e:
|
||||
print(f"Error removing file {os.path.join(root, name)}: {e}")
|
||||
|
||||
for name in dirs:
|
||||
try:
|
||||
os.rmdir(os.path.join(root, name))
|
||||
except Exception as e:
|
||||
print(f"Error removing directory {os.path.join(root, name)}: {e}")
|
||||
|
||||
try:
|
||||
os.rmdir(dir_path)
|
||||
print(f"Deleted: {dir_path}")
|
||||
except:
|
||||
print(f'Something went wrong when trying to delete a folder. You may try to manually delete the folder [{dir_path}].')
|
||||
return
|
||||
|
||||
|
||||
class ForgeSpace:
|
||||
def __init__(self, root_path, title, repo_id=None, repo_type='space', revision=None, **kwargs):
|
||||
self.title = title
|
||||
@@ -118,12 +139,7 @@ class ForgeSpace:
|
||||
return self.refresh_gradio()
|
||||
|
||||
def uninstall(self):
|
||||
def on_rm_error(func, path, exc_info):
|
||||
print(f"Error deleting {path}. Error: {exc_info[1]}")
|
||||
print(f'Something went wrong when trying to delete a folder. You may try to manually delete the folder [{self.hf_path}].')
|
||||
|
||||
shutil.rmtree(self.hf_path, onerror=on_rm_error)
|
||||
print(f'Deleted: {self.hf_path}')
|
||||
remove_dir(self.hf_path)
|
||||
return self.refresh_gradio()
|
||||
|
||||
def terminate(self):
|
||||
|
||||
Reference in New Issue
Block a user