#!/bin/bash -efu

topdir="$PWD"
cwd="${0%/*}"

mkdir -p -- "$cwd"/data{,/usr}/{bin,sbin}

:> "$cwd"/data/bin/foo
chmod +x "$cwd"/data/bin/foo

ln -s ../../bin/foo "$cwd"/data/usr/bin/foo
ln -s ../../bin/foo "$cwd"/data/usr/sbin/bar

mkfifo "$cwd"/data/pipe

(
	cd "$cwd"/data

	find -P . -type f -execdir touch -c -m --date="1970-01-01 00:00:00 +0000" '{}' '+'

	# shellcheck disable=SC2185
	find -O2 . -mindepth 1 \
		   \( -type f -a -printf 'file %p %p %#m 0 0\n'  \) \
		-o \( -type l -a -printf 'slink %p %l %#m 0 0\n' \) \
		-o \( -type d -a -printf 'dir %p %#m 0 0\n'      \) \
		-o \( -type p -a -printf 'pipe %p %#m 0 0\n'     \) \
		-o \( -type s -a -printf 'sock %p %#m 0 0\n'     \)
) > "$cwd"/data.gencpio ||:

(
	cd "$cwd"/data

	sort "$cwd"/data.gencpio |
		"$topdir"/.build/dest/usr/bin/gen_init_cpio -t 0 -
) > "$cwd"/data.cpio ||:

rm -rf -- "$cwd"/data

rc=0
cpio -tv < "$cwd"/data.cpio || rc=$?

rm -f -- \
	"$cwd"/data.cpio \
	"$cwd"/data.gencpio

exit $rc
