|
|
@@ -1,5 +1,6 @@
|
|
|
import { Injectable, Logger } from '@nestjs/common';
|
|
|
import { spawn } from 'child_process';
|
|
|
+import { mkdirSync } from 'fs';
|
|
|
import path from 'path';
|
|
|
import { DbService } from './db.service';
|
|
|
import { EventsGateway } from './events.gateway';
|
|
|
@@ -21,6 +22,21 @@ export class HandbrakeService {
|
|
|
): Promise<boolean> {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
try {
|
|
|
+ // Ensure output directory exists
|
|
|
+ const outputDir = path.dirname(output);
|
|
|
+ try {
|
|
|
+ mkdirSync(outputDir, { recursive: true });
|
|
|
+ this.logger.log(`Ensured output directory exists: ${outputDir}`);
|
|
|
+ } catch (err) {
|
|
|
+ this.logger.error(
|
|
|
+ `Failed to create output directory: ${outputDir}`,
|
|
|
+ err,
|
|
|
+ );
|
|
|
+ return reject(
|
|
|
+ new Error(`Cannot create output directory: ${outputDir}`),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
const inputName = path.basename(input);
|
|
|
const outputName = path.basename(output);
|
|
|
let progressStarted = false;
|