Add crossing:markings
question, file move script
This commit is contained in:
parent
8d181c183a
commit
ce74412891
26 changed files with 385 additions and 30 deletions
91
scripts/moveImage.ts
Normal file
91
scripts/moveImage.ts
Normal file
|
@ -0,0 +1,91 @@
|
|||
import { existsSync, renameSync, readFileSync, writeFileSync } from "fs"
|
||||
import SmallLicense from "../src/Models/smallLicense"
|
||||
|
||||
/**
|
||||
* Script to move/rename image files
|
||||
* Useful after downloading images from wikimedia commons
|
||||
* Apart from moving the image files, this will also update the license file
|
||||
*
|
||||
* This will NOT update any images in the theme
|
||||
*/
|
||||
|
||||
function main(args: string[]) {
|
||||
// Check if the correct number of arguments are passed
|
||||
if (args.length != 2) {
|
||||
console.log("Usage: moveImage.ts oldPath newPath")
|
||||
console.log("You passed in the arguments: " + args.join(","))
|
||||
console.log("Example: npx vite-node scripts/moveImage.ts images/old.jpg images/new.jpg")
|
||||
return
|
||||
}
|
||||
const [oldPath, newPath] = args
|
||||
|
||||
// Check if the oldPath exists
|
||||
if (!existsSync(oldPath)) {
|
||||
console.log("The oldPath does not exist: " + oldPath)
|
||||
return
|
||||
}
|
||||
|
||||
// Move file
|
||||
renameSync(oldPath, newPath)
|
||||
|
||||
// If it exists also move the .license file
|
||||
const oldLicensePath = oldPath + ".license"
|
||||
if (existsSync(oldLicensePath)) {
|
||||
const newLicensePath = newPath + ".license"
|
||||
renameSync(oldLicensePath, newLicensePath)
|
||||
}
|
||||
|
||||
console.log("Moved file from " + oldPath + " to " + newPath)
|
||||
|
||||
// Open license_info.json in the same directory as the old file
|
||||
const licensePath = oldPath.replace(/\/[^/]+$/, "/license_info.json")
|
||||
if (!existsSync(licensePath)) {
|
||||
console.log(
|
||||
"The license file does not exist: " +
|
||||
licensePath +
|
||||
". Skipping writing to license file."
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
// Read license file
|
||||
const licenseFile = readFileSync(licensePath, "utf8")
|
||||
const licenseInfo = JSON.parse(licenseFile) as SmallLicense[]
|
||||
|
||||
// Find correct license item
|
||||
const licenseItem = licenseInfo.find((item) => item.path === oldPath.replace(/.*\//, ""))
|
||||
|
||||
// Filter out license item
|
||||
const newLicenseInfo = licenseInfo.filter((item) => item.path !== oldPath.replace(/.*\//, ""))
|
||||
const newLicenseFile = JSON.stringify(newLicenseInfo, null, 2)
|
||||
|
||||
// Write new license file
|
||||
writeFileSync(licensePath, newLicenseFile)
|
||||
|
||||
// Look for a license_info.json file in the new path
|
||||
const newLicensePath = newPath.replace(/\/[^/]+$/, "/license_info.json")
|
||||
if (!existsSync(newLicensePath) && licenseItem) {
|
||||
console.log("License file doesn't exist yet, creating new one: " + newLicensePath)
|
||||
|
||||
// Create new license item
|
||||
const newLicenseItem = licenseItem
|
||||
newLicenseItem.path = newPath.replace(/.*\//, "")
|
||||
|
||||
// Create file
|
||||
writeFileSync(newLicensePath, JSON.stringify([newLicenseItem], null, 2))
|
||||
} else if (licenseItem) {
|
||||
console.log("Appending to existing license file: " + newLicensePath)
|
||||
|
||||
// Create new license item
|
||||
const newLicenseItem = licenseItem
|
||||
newLicenseItem.path = newPath.replace(/.*\//, "")
|
||||
|
||||
// Append to existing file
|
||||
const newLicenseFile = readFileSync(newLicensePath, "utf8")
|
||||
const newLicenseInfo = JSON.parse(newLicenseFile) as SmallLicense[]
|
||||
newLicenseInfo.push(newLicenseItem)
|
||||
writeFileSync(newLicensePath, JSON.stringify(newLicenseInfo, null, 2))
|
||||
}
|
||||
}
|
||||
|
||||
main(process.argv.slice(2))
|
Loading…
Add table
Add a link
Reference in a new issue