fix: ensure directories exist before writing adapter scripts

- Create env directory in copy script functions before writing
- Fixes initialization errors for Parakeet, Canary, and Sortformer adapters
- Update Makefile to use web/project-site for website commands
- Add build target to Makefile for building Scriberr binary
This commit is contained in:
rishikanthc
2025-12-30 10:55:07 -08:00
committed by Rishikanth Chandrasekaran
parent 5e5dc17a13
commit 923b39e415
4 changed files with 43 additions and 3 deletions

View File

@@ -19,19 +19,39 @@ docs-clean: ## Clean generated API documentation
website-dev: docs ## Start local development server for project website
@echo "Starting website development server..."
cd web/landing && npm run dev
cd web/project-site && npm run dev
website-build: docs ## Build project website for GitHub Pages
@echo "Building project website..."
cd web/landing && npm run build
cd web/project-site && npm run build
@echo "✓ Website built to /docs directory"
website-serve: website-build ## Build and preview project website locally
@echo "Previewing website..."
cd web/landing && npm run preview
cd web/project-site && npm run preview
docs-serve: website-serve ## Alias for website-serve
build: ## Build Scriberr binary with embedded frontend
@echo "Starting Scriberr build process..."
@echo "Cleaning old build files..."
@rm -f scriberr
@rm -rf internal/web/dist
@cd web/frontend && rm -rf dist/ && rm -rf assets/ 2>/dev/null || true
@echo "✓ Build files cleaned"
@echo "Building React frontend..."
@cd web/frontend && npm run build
@echo "✓ Frontend built"
@echo "Copying frontend assets for embedding..."
@rm -rf internal/web/dist
@cp -r web/frontend/dist internal/web/
@echo "✓ Assets copied"
@echo "Building Go binary..."
@go clean -cache
@go build -o scriberr cmd/server/main.go
@echo "✓ Binary built successfully"
@echo "Build complete. Run './scriberr' to start the server"
build-cli: ## Build CLI binaries for Linux, macOS, and Windows
@echo "Building CLI binaries..."
@mkdir -p bin/cli

View File

@@ -279,6 +279,11 @@ func (c *CanaryAdapter) downloadCanaryModel() error {
// copyTranscriptionScript creates the Python script for Canary transcription
func (c *CanaryAdapter) copyTranscriptionScript() error {
// Ensure directory exists before writing script
if err := os.MkdirAll(c.envPath, 0755); err != nil {
return fmt.Errorf("failed to create directory: %w", err)
}
scriptContent, err := nvidiaScripts.ReadFile("py/nvidia/canary_transcribe.py")
if err != nil {
return fmt.Errorf("failed to read embedded canary_transcribe.py: %w", err)

View File

@@ -247,6 +247,11 @@ func (p *ParakeetAdapter) downloadParakeetModel() error {
// copyTranscriptionScript creates the Python script for Parakeet transcription
func (p *ParakeetAdapter) copyTranscriptionScript() error {
// Ensure directory exists before writing script
if err := os.MkdirAll(p.envPath, 0755); err != nil {
return fmt.Errorf("failed to create directory: %w", err)
}
scriptContent, err := nvidiaScripts.ReadFile("py/nvidia/parakeet_transcribe.py")
if err != nil {
return fmt.Errorf("failed to read embedded transcribe.py: %w", err)
@@ -559,6 +564,11 @@ func (p *ParakeetAdapter) parseResult(tempDir string, input interfaces.AudioInpu
// copyBufferedScript creates the Python script for NeMo buffered inference
func (p *ParakeetAdapter) copyBufferedScript() error {
// Ensure directory exists before writing script
if err := os.MkdirAll(p.envPath, 0755); err != nil {
return fmt.Errorf("failed to create directory: %w", err)
}
scriptContent, err := nvidiaScripts.ReadFile("py/nvidia/parakeet_transcribe_buffered.py")
if err != nil {
return fmt.Errorf("failed to read embedded transcribe_buffered.py: %w", err)

View File

@@ -263,6 +263,11 @@ func (s *SortformerAdapter) downloadSortformerModel() error {
// copyDiarizationScript creates the Python script for Sortformer diarization
func (s *SortformerAdapter) copyDiarizationScript() error {
// Ensure directory exists before writing script
if err := os.MkdirAll(s.envPath, 0755); err != nil {
return fmt.Errorf("failed to create directory: %w", err)
}
scriptContent, err := nvidiaScripts.ReadFile("py/nvidia/sortformer_diarize.py")
if err != nil {
return fmt.Errorf("failed to read embedded sortformer_diarize.py: %w", err)