build_icons.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env bash
  2. check_programs() {
  3. for arg in "$@"
  4. do
  5. if ! command -v $arg >/dev/null 2>&1
  6. then
  7. echo "$arg could not be found"
  8. exit
  9. fi
  10. done
  11. }
  12. check_programs "icns2png" "composite" "convert" "png2icns" "icotool"
  13. pwd
  14. for file in vscode/resources/darwin/*
  15. do
  16. if [ -f "$file" ]; then
  17. name=$(basename $file '.icns')
  18. if [[ $name != 'code' ]] && [ ! -f "src/resources/darwin/$name.icns" ]; then
  19. echo "src/resources/darwin/$name.icns"
  20. icns2png -x -s 512x512 $file -o .
  21. composite -blend 100% -geometry +323+365 icons/corner_512.png "${name}_512x512x32.png" "$name.png"
  22. composite -geometry +338+365 icons/code_138.png "$name.png" "$name.png"
  23. convert "$name.png" -resize 256x256 "${name}_256.png"
  24. png2icns "src/resources/darwin/$name.icns" "$name.png" "${name}_256.png"
  25. rm "${name}_512x512x32.png" "$name.png" "${name}_256.png"
  26. fi
  27. fi
  28. done
  29. for file in vscode/resources/win32/*.ico
  30. do
  31. if [ -f "$file" ]; then
  32. name=$(basename $file '.ico')
  33. if [[ $name != 'code' ]] && [ ! -f "src/resources/win32/$name.ico" ]; then
  34. icotool -x -w 256 $file
  35. composite -geometry +150+185 icons/code_64.png "${name}_9_256x256x32.png" "${name}.png"
  36. convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "src/resources/win32/$name.ico"
  37. rm "${name}_9_256x256x32.png" "${name}.png"
  38. fi
  39. fi
  40. done