name: Compress Icons

on:
  schedule:
    - cron: "0 0 * * 0"
  workflow_dispatch:

jobs:
  compress_icons:
    runs-on: ubuntu-latest
    permissions:
      contents: write

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
        with:
          ref: ${{ github.ref_name }}

      - name: Install Dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y zopfli webp npm
          npm install -g svgo

      - name: Compress PNG Files
        run: |
          echo "Compressing PNGs..."
          find png/ -iname "*.png" -print0 | xargs -0 -P 4 -I{} zopflipng -y {} {}

      #- name: Compress SVG Files
      #  run: |
      #    echo "Compressing SVGs..."
      #    svgo -f svg/

      - name: Compress WEBP Files
        run: |
          echo "Compressing WEBPs..."
          find webp/ -iname "*.webp" -print0 | xargs -0 -P 4 -I{} bash -c 'cwebp -quiet -lossless "$1" -o "$1"' _ {}

      - name: Commit and Push Changes
        run: |
          git config --global user.email "homarr-labs@proton.me"
          git config --global user.name "Dashboard Icons Bot"
          git add png/ svg/ webp/
          git commit -m "ci(github-actions): compress icons" || exit 0
          git pull --rebase origin ${{ github.ref_name }}
          git push origin HEAD:${{ github.ref_name }}