diff options
Diffstat (limited to 'src/cmd/installer-pc.sh')
-rw-r--r-- | src/cmd/installer-pc.sh | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/cmd/installer-pc.sh b/src/cmd/installer-pc.sh index f9fd509..348838e 100644 --- a/src/cmd/installer-pc.sh +++ b/src/cmd/installer-pc.sh @@ -33,26 +33,28 @@ cmd_installer_pc_main() if ! get_options "${@}"; then print_cmd_usage 'installer-pc' >&2 - exit 1 + return 1 fi shift $(($OPTIND - 1)) if [ "x${cmd_installer_pc_opt_a-}" = 'x' ]; then print_cmd_usage 'installer-pc' >&2 - exit 1 + return 1 fi if [ "x${cmd_installer_pc_opt_p-}" = 'x' ]; then print_cmd_usage 'installer-pc' >&2 - exit 1 + return 1 fi if [ ${#} -ne 2 ]; then print_cmd_usage 'installer-pc' >&2 - exit 1 + return 1 fi suite="${1}" dev="${2}" - check_block "${dev}" + if ! check_block "${dev}"; then + return 2 + fi if [ "x${suite%%:*}" != "x${suite}" ]; then profile="${suite%%:*}" @@ -60,15 +62,23 @@ cmd_installer_pc_main() else profile='proteanos' fi - profile_set "${profile}" + if ! profile_set "${profile}"; then + return 2 + fi suite="$(profile_normalize_suite "${suite}")" cmd_installer_pc_make_partition_and_fs "${dev}" - root="$(block_mount "${dev}1")" + if ! root="$(block_mount "${dev}1")"; then + return 2 + fi - install_system "${cmd_installer_pc_opt_m-}" "${suite}" \ - "${cmd_installer_pc_opt_a-}" "${cmd_installer_pc_opt_p-}" \ - "${root}" false + if ! install_system "${cmd_installer_pc_opt_m-}" "${suite}" \ + "${cmd_installer_pc_opt_a-}" \ + "${cmd_installer_pc_opt_p-}" \ + "${root}" false; then + block_umount "${root}" + return 1 + fi if [ -f "${root}/sbin/lilo" ]; then read b4 b3 b2 b1 <<-EOF @@ -76,13 +86,18 @@ cmd_installer_pc_main() EOF # This ln command won't be needed once lilo 24.1-1 is uploaded. ln "${root}/boot/vmlinuz" "${root}/boot/vmlinuz.old" - session_begin "${root}" . : false + if ! session_begin "${root}" . : false + block_umount "${root}" + return 2 + fi session_exec install-lilo \ "${dev}" "PARTUUID=${b1}${b2}${b3}${b4}-01" session_end fi block_umount "${root}" + + return 0 } cmd_installer_pc_make_partition_and_fs() |