image-size.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env node
  2. 'use strict'
  3. const fs = require('fs')
  4. const path = require('path')
  5. const { imageSize } = require('..')
  6. const files = process.argv.slice(2)
  7. if (!files.length) {
  8. console.error('Usage: image-size image1 [image2] [image3] ...')
  9. process.exit(-1)
  10. }
  11. const red = ['\x1B[31m', '\x1B[39m']
  12. // const bold = ['\x1B[1m', '\x1B[22m']
  13. const grey = ['\x1B[90m', '\x1B[39m']
  14. const green = ['\x1B[32m', '\x1B[39m']
  15. function colorize(text, color) {
  16. return color[0] + text + color[1]
  17. }
  18. files.forEach(function (image) {
  19. try {
  20. if (fs.existsSync(path.resolve(image))) {
  21. const greyX = colorize('x', grey)
  22. const greyImage = colorize(image, grey)
  23. const size = imageSize(image)
  24. const sizes = size.images || [size]
  25. sizes.forEach(size => {
  26. let greyType = ''
  27. if (size.type) {
  28. greyType = colorize(' (' + size.type + ')', grey)
  29. }
  30. console.info(
  31. colorize(size.width, green) + greyX + colorize(size.height, green)
  32. + ' - ' + greyImage + greyType
  33. )
  34. })
  35. } else {
  36. console.error('file doesn\'t exist - ', image)
  37. }
  38. } catch (e) {
  39. // console.error(e.stack)
  40. console.error(colorize(e.message, red), '-', image)
  41. }
  42. })