Skip to content

Commit

Permalink
open_folder as util
Browse files Browse the repository at this point in the history
  • Loading branch information
w-e-w committed Apr 5, 2024
1 parent bef51ae commit 73c8b97
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 29 deletions.
31 changes: 2 additions & 29 deletions modules/ui_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,10 @@
import json
import html
import os
import platform
import sys

import gradio as gr
import subprocess as sp

from modules import call_queue, shared, ui_tempdir
from modules import call_queue, shared, ui_tempdir, util
from modules.infotext_utils import image_from_url_text
import modules.images
from modules.ui_components import ToolButton
Expand Down Expand Up @@ -176,31 +173,7 @@ def open_folder(f, images=None, index=None):
except Exception:
pass

if not os.path.exists(f):
msg = f'Folder "{f}" does not exist. After you create an image, the folder will be created.'
print(msg)
gr.Info(msg)
return
elif not os.path.isdir(f):
msg = f"""
WARNING
An open_folder request was made with an argument that is not a folder.
This could be an error or a malicious attempt to run code on your computer.
Requested path was: {f}
"""
print(msg, file=sys.stderr)
gr.Warning(msg)
return

path = os.path.normpath(f)
if platform.system() == "Windows":
os.startfile(path)
elif platform.system() == "Darwin":
sp.Popen(["open", path])
elif "microsoft-standard-WSL2" in platform.uname().release:
sp.Popen(["wsl-open", path])
else:
sp.Popen(["xdg-open", path])
util.open_folder(f)

with gr.Column(elem_id=f"{tabname}_results"):
if toprow:
Expand Down
33 changes: 33 additions & 0 deletions modules/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,36 @@ def mctime(self, path):
def reset(self):
"""Clear the cache of all directories."""
self.cached_dirs.clear()

def open_folder(path):
# import at function level to avoid potential issues
import gradio as gr
import platform
import sys
import subprocess

if not os.path.exists(path):
msg = f'Folder "{path}" does not exist. after you save an image, the folder will be created.'
print(msg)
gr.Info(msg)
return
elif not os.path.isdir(path):
msg = f"""
WARNING
An open_folder request was made with an path that is not a folder.
This could be an error or a malicious attempt to run code on your computer.
Requested path was: {path}
"""
print(msg, file=sys.stderr)
gr.Warning(msg)
return

path = os.path.normpath(path)
if platform.system() == "Windows":
os.startfile(path)
elif platform.system() == "Darwin":
subprocess.Popen(["open", path])
elif "microsoft-standard-WSL2" in platform.uname().release:
subprocess.Popen(["wsl-open", path])
else:
subprocess.Popen(["xdg-open", path])

0 comments on commit 73c8b97

Please sign in to comment.