mirror of
https://github.com/catppuccin/vscode-icons.git
synced 2026-01-09 05:31:03 +08:00
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
/**
|
|
* Ensure all default associations refer to existing icons.
|
|
*/
|
|
|
|
import { readdir } from 'node:fs/promises'
|
|
import { basename, join, resolve } from 'node:path'
|
|
import { exit } from 'node:process'
|
|
import { consola } from 'consola'
|
|
import { fileIcons } from '~/defaults/fileIcons'
|
|
import { folderIcons } from '~/defaults/folderIcons'
|
|
|
|
let exitCode = 0
|
|
|
|
const ICONS = 'icons'
|
|
const flavors = await readdir(resolve(ICONS))
|
|
|
|
consola.info('Running integrity check...')
|
|
|
|
await Promise.all(flavors.map(async (f) => {
|
|
const icons = await readdir(resolve(join(ICONS, f)))
|
|
|
|
Object.keys(fileIcons).forEach((fi) => {
|
|
if (!icons.some(i => basename(i, '.svg') === fi)) {
|
|
consola.error(`Missing ${f} icon for ${fi}`)
|
|
exitCode++
|
|
}
|
|
})
|
|
|
|
Object.keys(folderIcons).forEach((fi) => {
|
|
if (!icons.some(i => basename(i, '.svg') === `folder_${fi}`)) {
|
|
consola.error(`Missing ${f} folder icon for ${fi}`)
|
|
exitCode++
|
|
}
|
|
if (!icons.some(i => basename(i, '.svg') === `folder_${fi}_open`)) {
|
|
consola.error(`Missing ${f} open folder icon for ${fi}`)
|
|
exitCode++
|
|
}
|
|
})
|
|
}))
|
|
|
|
if (exitCode === 0)
|
|
consola.success('Integrity check passed.')
|
|
|
|
exit(exitCode)
|