+import { registerTSPaths } from '../server/helpers/register-ts-paths'
+registerTSPaths()
+
import * as prompt from 'prompt'
import { join } from 'path'
import { CONFIG } from '../server/initializers/config'
import { VideoModel } from '../server/models/video/video'
-import { initDatabaseModels } from '../server/initializers'
+import { initDatabaseModels } from '../server/initializers/database'
import { readdir, remove } from 'fs-extra'
import { VideoRedundancyModel } from '../server/models/redundancy/video-redundancy'
import * as Bluebird from 'bluebird'
import { getUUIDFromFilename } from '../server/helpers/utils'
import { ThumbnailModel } from '../server/models/video/thumbnail'
import { AvatarModel } from '../server/models/avatar/avatar'
+import { uniq, values } from 'lodash'
run()
.then(() => process.exit(0))
})
async function run () {
+ const dirs = values(CONFIG.STORAGE)
+
+ if (uniq(dirs).length !== dirs.length) {
+ console.error('Cannot prune storage because you put multiple storage keys in the same directory.')
+ process.exit(0)
+ }
+
await initDatabaseModels(true)
let toDelete: string[] = []
return true
}
- const videoFile = video.getFile(resolution)
+ const videoFile = video.getWebTorrentFile(resolution)
if (!videoFile) {
- console.error('Cannot find file of video %s - %d', video.url, resolution)
+ console.error('Cannot find webtorrent file of video %s - %d', video.url, resolution)
return true
}
}
prompt.get(schema, function (err, result) {
if (err) return rej(err)
- return res(result.confirm && result.confirm.match(/y/) !== null)
+
+ return res(result.confirm?.match(/y/) !== null)
})
})
}