#!/bin/sh # pcmemtest-install - Script to install PCMemTest # # Written in 2022 by Márcio Silva # # To the extent possible under law, the author(s) have dedicated all copyright # and related and neighboring rights to this software to the public domain # worldwide. This software is distributed without any warranty. # # You should have received a copy of the CC0 Public Domain Dedication along # with this software. If not, see # . if [ "${UID}" != '0' ] || [ "${USER}" != 'root' ]; then printf 'Only "root" user can install PCMemTest.\n' return 1 fi case "${1}" in 'bios') install -Dm '644' '/usr/share/pcmemtest/memtest.bin' -t \ '/boot/pcmemtest' ;; 'uefi') _SOURCE="$(findmnt -n -o 'source' '/boot/efi')" if [ -f '/usr/share/pcmemtest/bootia32.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootia32.efi' -t \ '/boot/efi/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootia32.efi' -L 'PCMemTest (IA32)' -v fi if [ -f '/usr/share/pcmemtest/bootx64.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootx64.efi' -t \ '/boot/efi/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootx64.efi' -L 'PCMemTest' -v fi ;; 'uefi-in-boot') _SOURCE="$(findmnt -n -o 'source' '/boot/efi')" if [ -f '/usr/share/pcmemtest/bootia32.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootia32.efi' -t \ '/boot/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootia32.efi' -L 'PCMemTest (IA32)' -v fi if [ -f '/usr/share/pcmemtest/bootx64.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootx64.efi' -t \ '/boot/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootx64.efi' -L 'PCMemTest' -v fi ;; 'both-in-boot') install -Dm '644' '/usr/share/pcmemtest/memtest.bin' -t \ '/boot/pcmemtest' _SOURCE="$(findmnt -n -o 'source' '/boot/efi')" if [ -f '/usr/share/pcmemtest/bootia32.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootia32.efi' -t \ '/boot/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootia32.efi' -L 'PCMemTest (IA32)' -v fi if [ -f '/usr/share/pcmemtest/bootx64.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootx64.efi' -t \ '/boot/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootx64.efi' -L 'PCMemTest' -v fi ;; *|'both') install -Dm '644' '/usr/share/pcmemtest/memtest.bin' -t \ '/boot/pcmemtest' _SOURCE="$(findmnt -n -o 'source' '/boot/efi')" if [ -f '/usr/share/pcmemtest/bootia32.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootia32.efi' -t \ '/boot/efi/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootia32.efi' -L 'PCMemTest (IA32)' -v fi if [ -f '/usr/share/pcmemtest/bootx64.efi' ]; then install -Dm '644' '/usr/share/pcmemtest/bootx64.efi' -t \ '/boot/efi/efi/PCMemTest' efibootmgr -c -d "${_SOURCE}" \ -l '\\efi\PCMemTest\bootx64.efi' -L 'PCMemTest' -v fi ;; esac