# Maintainer: Maksim Bondarenkov <maksapple2306@gmail.com>

_realname=gitoxide
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.50.0
pkgrel=1
pkgdesc="An idiomatic, lean, fast & safe pure Rust implementation of Git (mingw-w64)"
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url="https://github.com/GitoxideLabs/gitoxide"
license=('spdx:Apache-2.0 OR MIT')
msys2_references=(
  'archlinux: gitoxide'
  'purl: pkg:cargo/gitoxide'
)
makedepends=("${MINGW_PACKAGE_PREFIX}-rust" "${MINGW_PACKAGE_PREFIX}-nasm" 'git')
source=("git+${url}.git#tag=v${pkgver}"
        "aws-lc-sys.tar.gz::https://crates.io/api/v1/crates/aws-lc-sys/0.36.0/download"
        "aws-lc-sys-clang-fix.patch")
sha256sums=('e69be44271a4d9229b9c409e3be25242fc03f7721ac3289e632652d976ddce49'
            '43a442ece363113bd4bd4c8b18977a7798dd4d3c3383f34fb61936960e8f4ad8'
            '07cb2edffb4222b3a04e904b29f22b18946e953af39167c263754adb8ae1c910')

prepare() {
  cd "${_realname}"

  patch -d ../aws-lc-sys-0.36.0 -p1 -i ../aws-lc-sys-clang-fix.patch
  cat >> Cargo.toml <<END

[patch.crates-io]
aws-lc-sys.path = "../aws-lc-sys-0.36.0"
END

  cargo update -p aws-lc-sys
  cargo fetch --locked --target "${RUST_CHOST}"
}

build() {
  cd "${_realname}"

  export WINAPI_NO_BUNDLED_LIBRARIES=1
  cargo build \
    --locked \
    --no-default-features \
    --features max-pure \
    --profile release-github \
    --bin gix \
    --bin ein
}

check() {
  cd "${_realname}"

  export WINAPI_NO_BUNDLED_LIBRARIES=1
  cargo test \
    --locked \
    --no-default-features \
    --features max-pure \
    --profile release-github \
    --bin gix \
    --bin ein
}

package() {
  for _bin in gix ein; do
    install -Dm755 -t "${pkgdir}${MINGW_PREFIX}/bin" "${_realname}/target/release-github/${_bin}"

    # install completions
    local _complete="${pkgdir}${MINGW_PREFIX}/bin/${_bin} completions -s"
    $_complete bash | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions/${_bin}"
    $_complete zsh | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/zsh/site-functions/_${_bin}"
    $_complete fish | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/fish/vendor_completions.d/${_bin}.fish"
  done

  install -Dm644 "${_realname}"/LICENSE-{APACHE,MIT} -t "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/"
}
