Make log / file opening work on linux / windows

This commit is contained in:
Brett Williams
2023-06-04 12:58:23 -05:00
parent 0ba89553ab
commit a5d49abfae
2 changed files with 18 additions and 4 deletions

View File

@@ -10,9 +10,8 @@ from tkinter import ttk, messagebox
from PIL import Image, ImageTk from PIL import Image, ImageTk
from lib.client.new_job_window import NewJobWindow from lib.client.new_job_window import NewJobWindow
from lib.server.server_proxy import RenderServerProxy from lib.server.server_proxy import RenderServerProxy
sys.path.append("../")
from lib.server.zeroconf_server import ZeroconfServer from lib.server.zeroconf_server import ZeroconfServer
from lib.utilities.misc_helper import launch_url
logger = logging.getLogger() logger = logging.getLogger()
@@ -210,11 +209,11 @@ class DashboardWindow:
def reveal_in_finder(self): def reveal_in_finder(self):
job = next((d for d in self.job_cache if d.get('id') == self.selected_job_id()), None) job = next((d for d in self.job_cache if d.get('id') == self.selected_job_id()), None)
output_dir = os.path.dirname(job['output_path']) output_dir = os.path.dirname(job['output_path'])
subprocess.run(['open', output_dir]) launch_url(output_dir)
def open_logs(self): def open_logs(self):
url = f'http://{self.server_proxy.hostname}:{self.server_proxy.port}/api/job/{self.selected_job_id()}/logs' url = f'http://{self.server_proxy.hostname}:{self.server_proxy.port}/api/job/{self.selected_job_id()}/logs'
subprocess.run(['open', url]) launch_url(url)
def mainloop(self): def mainloop(self):
self.root.mainloop() self.root.mainloop()

View File

@@ -0,0 +1,15 @@
import logging
import subprocess
logger = logging.getLogger()
def launch_url(url):
if subprocess.check_output(['which', 'open']):
subprocess.run(['open', url]) # macos
elif subprocess.check_output(['which', 'xdg-open']):
subprocess.run(['xdg-open', url]) # linux
elif subprocess.check_output(['which', 'start']):
subprocess.run(['start', url]) # windows - need to validate this works
else:
logger.error(f"No valid launchers found to launch url: {url}")