File kernel-copyto.spec of Package kernel-copyto

Name: kernel-copyto
Version: 2
Release: 1
Summary: kernel copyto configurations for kernel-install
License: GPL-3.0-or-later
BuildArch: noarch

%description
%{summary}.

Requires: coreutils

%install
mkdir -p %{buildroot}%{_sysconfdir}/kernel/install.d



mkdir -p %{buildroot}%{_sysconfdir}/kernel/install.d
mkdir -p %{buildroot}%{_bindir}

cat << 'EOF' > %{buildroot}%{_sysconfdir}/kernel/install.d/52-%{name}.conf
#!/bin/sh
. %{_sysconfdir}/kernel-copyto.conf

if $enable; then
    echo "$1 $2 $3 $4"
    if test "$1" == "add" ; then
        (
            kernel-copyto --version "$2" --old_kernel="$4"
        )
    fi
fi
EOF

cat << 'EOF' > %{buildroot}%{_sysconfdir}/%{name}.conf
copydir=/boot/efi
kernel=vmlinuz
initrd=initrd.img
command='cp -Tfvp'
EOF

cat << 'EOF' > %{buildroot}%{_bindir}/%{name}
#!/bin/sh
while true; do
  case "$1" in
  --*)
    typeset  "${1:2}=$2"
    shift
    shift
  ;;
  *) break;;
  esac
done

. /etc/kernel-copyto.conf
version="${version:-$(uname -r)}"
bootdir="${bootdir:-/boot}"
cd "${bootdir}"

format(){
  echo -n "$(echo -n "$1" | sed "s~%v~${version}~g; s~%%~%~g")" 
}

old_initrd="$(realpath "$(format ${old_initrd:-"initrd-%v"})")"
old_kernel="$(realpath "$(format ${old_kernel:-"vmlinuz-%v"})")"

copydir="${copydir:-"${bootdir}/efi"}"
mkdir -p "${copydir}" || :
cd "${copydir}"

initrd="$(realpath --no-symlinks $(format "${initrd:-initrd.img}"))"
kernel="$(realpath --no-symlinks $(format "${kernel:-kernel}"))"

command="${command:-"cp -Tfvp"}"

if [ -f "${old_initrd}" ]; then
    eval "${command} '${old_initrd}' '$(format ${initrd})'"
fi
if [ -f "$old_kernel" ]; then
    eval "${command} '${old_kernel}' '${kernel}'"
fi


EOF

%files
%attr(0755, root, root) %{_bindir}/%{name}
%attr(0644, root, root) %config %{_sysconfdir}/%{name}.conf
%attr(0644, root, root) %config %{_sysconfdir}/kernel/install.d/52-%{name}.conf
%dir %{_sysconfdir}/kernel/install.d/
%dir %{_sysconfdir}/kernel/

openSUSE Build Service is sponsored by