# Maintainer:
# Contributor: Wez Furlong <wez at wezfurlong dot org>
# Contributor: Bernat Gabor <gaborjbernat@gmail.com>

: ${CARGO_HOME:=$SRCDEST/cargo-home}
: ${CARGO_TARGET_DIR:=target}
: ${RUSTUP_TOOLCHAIN:=stable}
export CARGO_HOME CARGO_TARGET_DIR RUSTUP_TOOLCHAIN

_pkgname="wezterm"
pkgname="$_pkgname-git"
pkgdesc="A GPU-accelerated cross-platform terminal emulator and multiplexer"
pkgver=20240203.110809.r849.ge46fe38
pkgrel=2
url="https://github.com/wezterm/wezterm"
license=("MIT")
arch=("x86_64" "i686")

depends=(
  'fontconfig'
  'libgit2'
  'libssh2'
  'libx11'
  'libxcb'
  'libxkbcommon'
  'libxkbcommon-x11'
  'openssl'
  'ttf-jetbrains-mono'
  'ttf-roboto'
  'wayland'
  'xcb-util'
  'xcb-util-image'
  'zlib'
)
makedepends=(
  'cargo'
  'cmake'
  'git'
  'python'
)
optdepends=(
  'ncurses: for wezterm terminfo database'
  'noto-fonts-emoji: for default fonts'
  'python-nautilus: WezTerm context menu in Nautilus'
  'ttf-nerd-fonts-symbols-mono: for default fonts'
)

provides=("$_pkgname")
conflicts=("$_pkgname")

options=('!lto')

_pkgsrc="$_pkgname"
source=("$_pkgsrc"::"git+$url.git")
sha256sums=('SKIP')

prepare() {
  cd "$_pkgsrc"
  git submodule update --init --recursive --depth=1

  sed -i 's/"vendored-fonts", //' wezterm-gui/Cargo.toml
  cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}

pkgver() {
  cd "$_pkgsrc"
  git describe --long --tags --abbrev=7 --exclude='[a-zA-Z][a-zA-Z]*' \
    | sed -E 's/([^-]*-g)/r\1/;s/-[^-]*-r/-r/;s/-/./g'
}

build() {
  cd "$_pkgsrc"
  LIBSSH2_SYS_USE_PKG_CONFIG=1 cargo build --frozen --release --features distro-defaults
}

check() {
  cd "$_pkgsrc"
  LIBSSH2_SYS_USE_PKG_CONFIG=1 cargo test --frozen --release -- --skip "e2e::sftp"
}

package() {
  cd "$_pkgsrc"

  install -Dm755 "$CARGO_TARGET_DIR"/release/wezterm -t "$pkgdir/usr/bin/"
  install -Dm755 "$CARGO_TARGET_DIR"/release/wezterm-gui -t "$pkgdir/usr/bin/"
  install -Dm755 "$CARGO_TARGET_DIR"/release/wezterm-mux-server -t "$pkgdir/usr/bin/"
  install -Dm755 "$CARGO_TARGET_DIR"/release/strip-ansi-escapes -t "$pkgdir/usr/bin/"

  install -Dm644 assets/icon/terminal.png "$pkgdir/usr/share/pixmaps/org.wezfurlong.wezterm.png"
  install -Dm644 assets/wezterm.desktop "$pkgdir/usr/share/applications/org.wezfurlong.wezterm.desktop"
  install -Dm644 assets/wezterm.appdata.xml "$pkgdir/usr/share/metainfo/org.wezfurlong.wezterm.appdata.xml"
  install -Dm644 assets/wezterm-nautilus.py "$pkgdir/usr/share/nautilus-python/extensions/wezterm-nautilus.py"

  install -Dm755 assets/open-wezterm-here -t "$pkgdir/usr/bin/"
  install -Dm644 assets/shell-completion/bash "$pkgdir/usr/share/bash-completion/completions/wezterm"
  install -Dm644 assets/shell-completion/zsh "$pkgdir/usr/share/zsh/site-functions/_wezterm"
  install -Dm644 assets/shell-completion/fish "$pkgdir/usr/share/fish/completions/wezterm.fish"
  install -Dm644 assets/shell-integration/wezterm.sh "$pkgdir/etc/profile.d/wezterm.sh"

  install -Dm644 LICENSE.md -t "$pkgdir/usr/share/licenses/$pkgname"
}
