Untitled

 avatar
unknown
plain_text
a year ago
1.7 kB
3
Indexable
// Created by Assylken Taukenov

const fs = require('fs');
const path = require('path');

const imageDir = path.join(__dirname, 'public', 'images');
const projectDir = __dirname;

const isImageUsed = (imageName) => {
  console.log(`Проверка использования изображения: ${imageName}`);
  const searchCommand = `grep -r "${imageName}" ${projectDir}`;
  try {
    const result = require('child_process').execSync(searchCommand).toString();
    return result.includes(imageName);
  } catch (error) {
    return false;
  }
};

const findUnusedImages = (dir) => {
  const unusedImages = [];

  console.log(`Обход директории: ${dir}`);
  const files = fs.readdirSync(dir);

  files.forEach((file) => {
    const fullPath = path.join(dir, file);
    const stat = fs.lstatSync(fullPath);

    if (stat.isDirectory()) {
      unusedImages.push(...findUnusedImages(fullPath));
    } else {
      const ext = path.extname(file).toLowerCase();
      if (['.png', '.jpg', '.jpeg', '.gif', '.svg'].includes(ext)) {
        if (!isImageUsed(file)) {
          unusedImages.push(fullPath);
        }
      }
    }
  });

  return unusedImages;
};

console.log('Начало поиска неиспользуемых изображений');
const unusedImages = findUnusedImages(imageDir);
console.log('Поиск завершен');

if (unusedImages.length > 0) {
  console.log('Неиспользуемые изображения:');
  unusedImages.forEach((image) => console.log(image));
} else {
  console.log('Все изображения используются.');
}
Editor is loading...
Leave a Comment