import { ChildProcess, fork } from 'child_process'
import { copy } from 'fs-extra'
import { join } from 'path'
-import { root, randomInt } from '@shared/core-utils'
-import { Video, VideoChannel, VideoCreateResult, VideoDetails } from '../../models/videos'
+import { parallelTests, randomInt, root } from '@shared/core-utils'
+import { Video, VideoChannel, VideoCreateResult, VideoDetails } from '@shared/models'
import { BulkCommand } from '../bulk'
import { CLICommand } from '../cli'
import { CustomPagesCommand } from '../custom-pages'
import { FeedCommand } from '../feeds'
import { LogsCommand } from '../logs'
-import { parallelTests, SQLCommand } from '../miscs'
+import { SQLCommand } from '../miscs'
import { AbusesCommand } from '../moderation'
import { OverviewsCommand } from '../overviews'
import { SearchCommand } from '../search'
PlaylistsCommand,
ServicesCommand,
StreamingPlaylistsCommand,
+ VideoEditorCommand,
VideosCommand
} from '../videos'
import { CommentsCommand } from '../videos/comments-command'
import { DebugCommand } from './debug-command'
import { FollowsCommand } from './follows-command'
import { JobsCommand } from './jobs-command'
+import { ObjectStorageCommand } from './object-storage-command'
import { PluginsCommand } from './plugins-command'
import { RedundancyCommand } from './redundancy-command'
import { ServersCommand } from './servers-command'
import { StatsCommand } from './stats-command'
-import { ObjectStorageCommand } from './object-storage-command'
export type RunServerOptions = {
hideLogs?: boolean
login?: LoginCommand
users?: UsersCommand
objectStorage?: ObjectStorageCommand
+ videoEditor?: VideoEditorCommand
videos?: VideosCommand
constructor (options: { serverNumber: number } | { url: string }) {
Object.assign(env, options.env)
}
+ const execArgv = options.nodeArgs || []
+ // FIXME: too slow :/
+ // execArgv.push('--enable-source-maps')
+
const forkOptions = {
silent: true,
env,
detached: true,
- execArgv: options.nodeArgs || []
+ execArgv
}
+ const peertubeArgs = options.peertubeArgs || []
+
return new Promise<void>((res, rej) => {
const self = this
let aggregatedLogs = ''
- this.app = fork(join(root(), 'dist', 'server.js'), options.peertubeArgs || [], forkOptions)
+ this.app = fork(join(root(), 'dist', 'server.js'), peertubeArgs, forkOptions)
const onPeerTubeExit = () => rej(new Error('Process exited:\n' + aggregatedLogs))
const onParentExit = () => {
this.users = new UsersCommand(this)
this.videos = new VideosCommand(this)
this.objectStorage = new ObjectStorageCommand(this)
+ this.videoEditor = new VideoEditorCommand(this)
}
}