morshu-server: use resolved absolute paths and pass env properly
This commit is contained in:
+14
-2
@@ -523,6 +523,10 @@ class TtsToy(Cog):
|
||||
log.info("Morshu server already running")
|
||||
return True
|
||||
|
||||
if not self.morshu_dir.exists():
|
||||
log.error(f"Morshu server directory not found: {self.morshu_dir}")
|
||||
return False
|
||||
|
||||
server_py = self.morshu_dir / "server.py"
|
||||
if not server_py.exists():
|
||||
log.error(f"Morshu server not found: {server_py}")
|
||||
@@ -533,7 +537,7 @@ class TtsToy(Cog):
|
||||
|
||||
self.morshu_process = await asyncio.to_thread(
|
||||
subprocess.Popen,
|
||||
[sys.executable, "server.py"],
|
||||
[sys.executable, str(server_py)],
|
||||
cwd=str(self.morshu_dir),
|
||||
env=env,
|
||||
stdout=subprocess.PIPE,
|
||||
@@ -541,10 +545,18 @@ class TtsToy(Cog):
|
||||
text=True
|
||||
)
|
||||
|
||||
# Wait for server to start
|
||||
await asyncio.sleep(3)
|
||||
|
||||
# Check if it's still running
|
||||
if self.morshu_process.poll() is not None:
|
||||
log.error("Morshu server failed to start")
|
||||
stderr = self.morshu_process.stderr.read()
|
||||
stdout = self.morshu_process.stdout.read()
|
||||
log.error(f"Morshu server failed to start (exit {self.morshu_process.returncode})")
|
||||
if stderr:
|
||||
log.error(f"Morshu stderr: {stderr}")
|
||||
if stdout:
|
||||
log.error(f"Morshu stdout: {stdout}")
|
||||
return False
|
||||
|
||||
log.info(f"Morshu server started on port {self.morshu_port}")
|
||||
|
||||
Reference in New Issue
Block a user