tauri-icon.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. const parseArgs = require('minimist')
  2. const { appDir, tauriDir } = require('../helpers/app-paths')
  3. const logger = require('../helpers/logger')
  4. const log = logger('app:tauri')
  5. const warn = logger('app:tauri (icon)', 'red')
  6. const { tauricon } = require('../helpers/tauricon')
  7. const { resolve } = require('path')
  8. /**
  9. * @type {object}
  10. * @property {boolean} h
  11. * @property {boolean} help
  12. * @property {string|boolean} f
  13. * @property {string|boolean} force
  14. * @property {boolean} l
  15. * @property {boolean} log
  16. * @property {boolean} c
  17. * @property {boolean} config
  18. * @property {boolean} s
  19. * @property {boolean} source
  20. * @property {boolean} t
  21. * @property {boolean} target
  22. */
  23. const argv = parseArgs(process.argv.slice(2), {
  24. alias: {
  25. h: 'help',
  26. l: 'log',
  27. c: 'config',
  28. s: 'source',
  29. t: 'target'
  30. },
  31. boolean: ['h', 'l']
  32. })
  33. if (argv.help) {
  34. console.log(`
  35. Description
  36. Create all the icons you need for your Tauri app.
  37. Usage
  38. $ tauri icon
  39. Options
  40. --help, -h Displays this message
  41. --log, l Logging [boolean]
  42. --icon, i Source icon (png, 1240x1240 with transparency)
  43. --target, t Target folder (default: 'src-tauri/icons')
  44. --compression, c Compression type [pngquant|optipng|zopfli]
  45. `)
  46. process.exit(0)
  47. }
  48. tauricon.make(
  49. argv.i || resolve(appDir, 'app-icon.png'),
  50. argv.t || resolve(tauriDir, 'icons'),
  51. argv.c || 'optipng'
  52. ).then(() => {
  53. log('(tauricon) Completed')
  54. }).catch(e => {
  55. warn(e)
  56. })