morshu-server: use resolved absolute paths and pass env properly

This commit is contained in:
2026-06-06 19:55:17 -05:00
parent 33aa6aba33
commit 561cec8bee
3 changed files with 27 additions and 9 deletions
+14 -2
View File
@@ -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}")