New debug mode:
Debug mode is no more triggered by the NODE_ENV value, but by testing the existance of a file in the plugin data directory.
This commit is contained in:
committed by
John Livingston
parent
f8b83defb5
commit
b4dabfeeb9
19
server/lib/debug.ts
Normal file
19
server/lib/debug.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import type { RegisterServerOptions } from '@peertube/peertube-types'
|
||||
import * as path from 'path'
|
||||
import * as fs from 'fs'
|
||||
|
||||
export function isDebugMode (options: RegisterServerOptions): boolean {
|
||||
const peertubeHelpers = options.peertubeHelpers
|
||||
const logger = peertubeHelpers.logger
|
||||
|
||||
if (!peertubeHelpers.plugin) {
|
||||
return false
|
||||
}
|
||||
const filepath = path.resolve(peertubeHelpers.plugin.getDataDirectoryPath(), 'debug_mode')
|
||||
logger.debug('Testing debug mode by testing if file exists: ' + filepath)
|
||||
if (fs.existsSync(filepath)) {
|
||||
logger.info('Plugin livechat Debug mode is on.')
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
@ -5,6 +5,6 @@ export async function diagBackend (test: string, _options: RegisterServerOptions
|
||||
const result = newResult(test)
|
||||
result.label = 'Backend connection'
|
||||
result.ok = true
|
||||
result.next = 'webchat-video'
|
||||
result.next = 'debug'
|
||||
return result
|
||||
}
|
||||
|
12
server/lib/diagnostic/debug.ts
Normal file
12
server/lib/diagnostic/debug.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import type { RegisterServerOptions } from '@peertube/peertube-types'
|
||||
import { newResult, TestResult } from './utils'
|
||||
import { isDebugMode } from '../../lib/debug'
|
||||
|
||||
export async function diagDebug (test: string, options: RegisterServerOptions): Promise<TestResult> {
|
||||
const result = newResult(test)
|
||||
result.label = 'Test debug mode'
|
||||
result.ok = true
|
||||
result.messages = [isDebugMode(options) ? 'Debug mode is ON' : 'Debug mode is OFF']
|
||||
result.next = 'webchat-video'
|
||||
return result
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
import type { RegisterServerOptions } from '@peertube/peertube-types'
|
||||
import { diagBackend } from './backend'
|
||||
import { TestResult, newResult } from './utils'
|
||||
import { diagDebug } from './debug'
|
||||
import { diagProsody } from './prosody'
|
||||
import { diagVideo } from './video'
|
||||
|
||||
@ -9,6 +10,8 @@ export async function diag (test: string, options: RegisterServerOptions): Promi
|
||||
|
||||
if (test === 'backend') {
|
||||
result = await diagBackend(test, options)
|
||||
} else if (test === 'debug') {
|
||||
result = await diagDebug(test, options)
|
||||
} else if (test === 'webchat-video') {
|
||||
result = await diagVideo(test, options)
|
||||
} else if (test === 'prosody') {
|
||||
|
@ -1,4 +1,4 @@
|
||||
type nextValue = 'backend' | 'webchat-video' | 'prosody'
|
||||
type nextValue = 'backend' | 'debug' | 'webchat-video' | 'prosody'
|
||||
|
||||
interface MessageWithLevel {
|
||||
level: 'info' | 'warning' | 'error'
|
||||
|
@ -347,7 +347,7 @@ async function ensureProsodyRunning (options: RegisterServerOptions): Promise<vo
|
||||
return
|
||||
}
|
||||
logger.info('Prosody is running')
|
||||
startProsodyLogRotate(options, filePaths, reloadProsody)
|
||||
await startProsodyLogRotate(options, filePaths, reloadProsody)
|
||||
}
|
||||
|
||||
async function ensureProsodyNotRunning (options: RegisterServerOptions): Promise<void> {
|
||||
|
@ -1,5 +1,6 @@
|
||||
import type { RegisterServerOptions } from '@peertube/peertube-types'
|
||||
import type { ProsodyFilePaths } from './config/paths'
|
||||
import { isDebugMode } from '../debug'
|
||||
|
||||
type Rotate = (file: string, options: {
|
||||
count?: number
|
||||
@ -32,8 +33,9 @@ async function _rotate (options: RegisterServerOptions, path: string): Promise<v
|
||||
|
||||
function startProsodyLogRotate (options: RegisterServerOptions, paths: ProsodyFilePaths, reload: ReloadProsody): void {
|
||||
const logger = options.peertubeHelpers.logger
|
||||
const checkInterval = process.env.NODE_ENV === 'test' ? 60 * 1000 : 60 * 60 * 1000 // check every hour
|
||||
const rotateEvery = process.env.NODE_ENV === 'test' ? 2 * 60 * 1000 : 24 * 60 * 60 * 1000 // rotate every 24hour
|
||||
const debugMode = isDebugMode(options)
|
||||
const checkInterval = debugMode ? 60 * 1000 : 60 * 60 * 1000 // check every hour
|
||||
const rotateEvery = debugMode ? 2 * 60 * 1000 : 24 * 60 * 60 * 1000 // rotate every 24hour
|
||||
// TODO: also rotate when file is too big
|
||||
|
||||
if (logRotate) {
|
||||
|
Reference in New Issue
Block a user