mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-03 14:54:37 +00:00
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import fs from 'fs-extra'
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
export function syncDevtools(targetComfyDir: string): boolean {
|
|
if (!targetComfyDir) {
|
|
console.warn('syncDevtools skipped: TEST_COMFYUI_DIR not set')
|
|
return false
|
|
}
|
|
|
|
// Validate and sanitize the target directory path
|
|
const resolvedTargetDir = path.resolve(targetComfyDir)
|
|
|
|
// Basic path validation to prevent directory traversal
|
|
if (resolvedTargetDir.includes('..') || !path.isAbsolute(resolvedTargetDir)) {
|
|
console.error('syncDevtools failed: Invalid target directory path')
|
|
return false
|
|
}
|
|
|
|
const moduleDir =
|
|
typeof __dirname !== 'undefined'
|
|
? __dirname
|
|
: path.dirname(fileURLToPath(import.meta.url))
|
|
|
|
const devtoolsSrc = path.resolve(moduleDir, '..', '..', 'tools', 'devtools')
|
|
|
|
if (!fs.pathExistsSync(devtoolsSrc)) {
|
|
console.warn(
|
|
`syncDevtools skipped: source directory not found at ${devtoolsSrc}`
|
|
)
|
|
return false
|
|
}
|
|
|
|
const devtoolsDest = path.resolve(
|
|
resolvedTargetDir,
|
|
'custom_nodes',
|
|
'ComfyUI_devtools'
|
|
)
|
|
|
|
console.warn(`syncDevtools: copying ${devtoolsSrc} -> ${devtoolsDest}`)
|
|
|
|
try {
|
|
fs.removeSync(devtoolsDest)
|
|
fs.ensureDirSync(devtoolsDest)
|
|
fs.copySync(devtoolsSrc, devtoolsDest, { overwrite: true })
|
|
console.warn('syncDevtools: copy complete')
|
|
return true
|
|
} catch (error) {
|
|
console.error(`Failed to sync DevTools to ${devtoolsDest}:`, error)
|
|
return false
|
|
}
|
|
}
|