name: Release to AUR
on:
  workflow_call:
    inputs:
      package-name:
        required: true
        type: string
      description:
        required: true
        type: string
      depends:
        required: true
        type: string
      flags:
        required: true
        type: string
  workflow_dispatch:
    inputs:
      package-name:
        description: "The name under which the package is going to be packaged to AUR"
        type: string
        default: "lmdbal"
      description:
        description: "The description of the package"
        type: string
        default: "LMDB Abstraction Layer"
      depends:
        description: "Additional dependencies"
        type: string
        default: ""
      flags:
        description: "Additional CMake flags"
        type: string
        default: ""

jobs:
  aur:
    name: Releasing ${{ inputs.package-name }} to AUR
    runs-on: archlinux
    steps:
      - name: Download the release tarball
        run: curl -sL ${{ gitea.server_url }}/${{ gitea.repository }}/archive/${{ gitea.event.release.tag_name }}.tar.gz --output tarball.tar.gz

      - name: Calculate SHA256 for the tarball
        run: echo "tbSum=$(sha256sum tarball.tar.gz | cut -d ' ' -f 1)" >> $GITHUB_ENV

      - name: Unarchive tarball
        run: tar -xvzf tarball.tar.gz

      - name: Clone the AUR repository
        run: |
          echo "${{ secrets.DEPLOY_TO_AUR_PRIVATE_KEY }}" > key
          chmod 600 key
          GIT_SSH_COMMAND="ssh -i key -o 'IdentitiesOnly yes' -o 'StrictHostKeyChecking no'" git clone ssh://aur@aur.archlinux.org/${{ inputs.package-name }}.git aur
          chmod 777 -R aur
          cd aur
          git config user.name ${{ secrets.DEPLOY_TO_AUR_USER_NAME }}
          git config user.email ${{ secrets.DEPLOY_TO_AUR_EMAIL }}


      - name: Copy PKGBUILD to the directory
        run: cp lmdbal/packaging/Archlinux/PKGBUILD aur/

      - name: Patch PKGBUILD file, and generate .SRCINFO
        working-directory: aur
        run: |
          sed -i "/sha256sums=/c\sha256sums=('${{ env.tbSum }}')" PKGBUILD
          sed -i "/pkgname=lmdbal/c\pkgname=(${{ inputs.package-name }})" PKGBUILD
          sed -i "/pkgver=1.0.0/c\pkgver=(${{ gitea.event.release.tag_name }})" PKGBUILD
          sed -i "/pkgdesc=\"LMDB Abstraction Layer\"/c\pkgdesc=(\"${{ inputs.description }}\")" PKGBUILD
          sed -i "/depends=( 'lmdb' )/c\depends=( 'lmdb' ${{ inputs.depends }} ))" PKGBUILD
          sed -i '/cmake . -D/s/$/ ${{ input.flags }}/' PKGBUILD
          sudo -u build makepkg --printsrcinfo > .SRCINFO

      - name: Commit package to aur
        working-directory: aur
        run: |
          git add PKGBUILD .SRCINFO
          git commit -m "${{ gitea.event.release.body }}"
          GIT_SSH_COMMAND="ssh -i ../key -o 'IdentitiesOnly yes' -o 'StrictHostKeyChecking no'" git push