overleaf/services/web/scripts/backfill_project_image_name.mjs
Liangjun Song 26f3f3e2e2 Merge pull request #21097 from overleaf/ls-scripts-to-esm-1
Migrate scripts folder to esm 1/x

GitOrigin-RevId: 4a4bc9a161f144fdb40ce3f2a0a9313b36c6df81
2024-10-21 08:04:42 +00:00

56 lines
1.3 KiB
JavaScript

import minimist from 'minimist'
import BatchedUpdateModule from './helpers/batchedUpdate.mjs'
const { batchedUpdateWithResultHandling } = BatchedUpdateModule
const argv = minimist(process.argv.slice(2))
const commit = argv.commit !== undefined
let imageName = argv._[0]
function usage() {
console.log(
'Usage: node backfill_project_image_name.mjs --commit <texlive_docker_image>'
)
console.log(
'Argument <texlive_docker_image> is not required when TEX_LIVE_DOCKER_IMAGE is set.'
)
console.log(
'Environment variable ALL_TEX_LIVE_DOCKER_IMAGES must contain <texlive_docker_image>.'
)
}
if (!imageName && process.env.TEX_LIVE_DOCKER_IMAGE) {
imageName = process.env.TEX_LIVE_DOCKER_IMAGE
}
if (!imageName) {
usage()
process.exit(1)
}
if (!process.env.ALL_TEX_LIVE_DOCKER_IMAGES) {
console.error(
'Error: environment variable ALL_TEX_LIVE_DOCKER_IMAGES is not defined.'
)
usage()
process.exit(1)
}
if (!process.env.ALL_TEX_LIVE_DOCKER_IMAGES.split(',').includes(imageName)) {
console.error(
`Error: ALL_TEX_LIVE_DOCKER_IMAGES doesn't contain ${imageName}`
)
usage()
process.exit(1)
}
if (!commit) {
console.error('DOING DRY RUN. TO SAVE CHANGES PASS --commit')
process.exit(1)
}
batchedUpdateWithResultHandling(
'projects',
{ imageName: null },
{ $set: { imageName } }
)