# Maintainer: Kira <[@kira](https://dev.kira-linux.org/kira)>

pkgname=bzz-initrd
pkgver=0.1.1
pkgrel=1
pkgdesc='Initrd image for Kira Linux'
url='https://dev.kira-linux.org'
arch=(x86_64)

_nyanit_ver=0.1.2
_nyanit_src=v${_nyanit_ver}.tar.gz

makedepends=(
  bcachefs-tools
  coreutils
  pax-utils
  rust
  tar
  bc
  cpio
  gettext
  pahole
  perl
  python
  xz
  gzip
  zstd
)
options=(
  !debug
)

_nyanit_src_dir=nyanit

source=(
  https://dev.kira-linux.org/kira-linux/nyanit/archive/${_nyanit_src}
)

sha256sums=('b10be774afaec229c4580b69dd41834fb035653ff026d7e0523d3085b13f6d73')
b2sums=('f9e67272e5bc86c38f140b0fceb276e993827ec3c2d736deaff9076a20a6726cd4bc1df5c060c0836a4981d774987e7bdcfc301267bd22133fd9d56ebb5b9496')

_tools_list=(
  /usr/bin/mount
  /usr/bin/umount
  /usr/bin/bcachefs
  /usr/bin/fsck
  /usr/bin/fsck.vfat
  /usr/bin/switch_root
  /usr/bin/ls
  /usr/bin/sh
)

build() {

  echo "Building NYANIT..."
  cd $_nyanit_src_dir
  cargo build --release
  cp target/release/nyanit $srcdir/init
  chmod +x $srcdir/init
  echo "##### DONE Building NYANIT #####"
  echo ""

  echo "Populate initdramfs tree..."
  cd $srcdir
  mkdir -p initramfs/{bin,lib,lib64,dev,proc,sys,mnt,tmp,etc}

  echo "Create device node"
  cd initramfs
  sudo mknod -m 622 dev/console c 5 1

  echo "Install NYANIT..."
  cd $srcdir
  lddtree --bindir / --copy-to-tree $srcdir/initramfs init

  echo "Copy libs and binaries"
  cd $srcdir
  lddtree --copy-to-tree $srcdir/initramfs "${_tools_list[@]}"

  echo "Copy /usr/lib/libc.so"
  cp /usr/lib/libc.so  $srcdir/initramfs/usr/lib/

  echo "Run ldconfig"
  ldconfig -r $srcdir/initramfs -v

  # Create cpio archive
  echo "Create cpio archive"
  cd $srcdir/initramfs
  find . | cpio -ov --format=newc > ../initramfs.cpio

}

package() {
  pkgdesc="The $pkgdesc kernel and modules"
  license=(
    GPL-3.0-or-later
    GPL-2.0-or-later
    GPL-2.0-only
    Zlib
  )

  echo "Installing bzz-initrd"
  install -vDm 644 $srcdir/initramfs.cpio -t "$pkgdir/usr/share/$pkgname/"
}

