From bdc7c39edce3bf794160ef29da091e09884586f1 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Thu, 21 Aug 2014 16:53:45 +0200 Subject: [PATCH] usbinstall: drop bootusb image installation support and more fixes - fix check for grub i386-efi installation on x86_64 - do unmount in errorAndExit function --- src/usbinstall.py | 2 +- src/usbinstall.sh | 63 +++++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 33 deletions(-) mode change 100755 => 100644 src/usbinstall.sh diff --git a/src/usbinstall.py b/src/usbinstall.py index 3876fe8..3376a1f 100755 --- a/src/usbinstall.py +++ b/src/usbinstall.py @@ -354,7 +354,7 @@ def step3(): # Show the progressBar window.p_install.show() dbus_start() - process_sh = Popen(["pkexec", "/usr/sbin/usbinstall", path_dev, path_cpio, path_iso, "-d"]) + process_sh = Popen(["pkexec", "/usr/sbin/usbinstall", path_dev, path_iso, "-d"]) # Show a list of object (step 1) def list_obj1(): diff --git a/src/usbinstall.sh b/src/usbinstall.sh old mode 100755 new mode 100644 index e283c9e..7f4efce --- a/src/usbinstall.sh +++ b/src/usbinstall.sh @@ -1,8 +1,8 @@ #!/bin/bash #usbinstall.sh # Arg 1: usb device for installation -# Arg 2: boot file -# Arg 3: iso file +# Arg 2: iso file +# Arg 3: option #~ # openmamba-usbinstall è uno script per la generazione automatica di una chiavetta di boot per openmamba snapshot. @@ -10,7 +10,7 @@ #~ # scaricherà direttamente la versione attuale dal sito di openmamba. #~ # se il file iso è presente nella home verrà usato direttamente altrimenti si aprirà un dialogo dove sarà possibile cercarlo. #~ # (c) 2009 ercole 'ercolinux' carpanetto - ercole69@gmail.com -#~ # (c) 2009-2013 Silvan Calarco - silvan.calarco@mambasoft.it +#~ # (c) 2009-2014 Silvan Calarco - silvan.calarco@mambasoft.it # License: GPL v.3 @@ -41,7 +41,7 @@ org.freedesktop.DBus.Properties.Get string:$3 string:"$4"` function dbus_properties_get_stringlist() { # FIXME: only returns first element REPLY=`dbus-send --system --print-reply --dest=$1 $2 \ -org.freedesktop.DBus.Properties.Get string:$3 string:"$4"` +org.freedesktop.DBus.Properties.Get string:$3 string:$4` [ $? -eq 0 ] || return 1 echo $REPLY | sed "s|.*array.*\[ string \"\(.*\)\" ]|\1|" return 0 @@ -112,6 +112,10 @@ function errorAndExit() if [ -n "$2" ]; then usage fi + if [ "${SELECT_USB}" ]; then + udisks --unmount ${SELECT_USB}1 >/dev/null + udisks --unmount ${SELECT_USB}2 >/dev/null + fi exit_frontend "$1" # Termina il frontend con codice di errore 1 exit 1 } @@ -121,9 +125,9 @@ function usage() echo $"usbinstall: install openmamba into your usb key!" echo -e "\t"$"Usage: sudo usbinstall Arg1 Arg2 Arg3 [-y]" echo -e "\t"$"Arg 1: Usb device path (e.g. /dev/sdc)" - echo -e "\t"$"Arg 2: Cpio.gz file (e.g. ~/openmamba-bootusb-it-milestone2-2.0pre8.i586.cpio.gz)" - echo -e "\t"$"Arg 3: ISO file (e.g. ~/openmamba-livecd-it-milestone2-2.0pre8.i586.iso)" - echo -e "\t"$"-y: install without asking confirmation [Be careful!]" + echo -e "\t"$"Arg 2: ISO file (e.g. ~/openmamba-livecd-it-milestone2-2.0pre8.i586.iso)" + echo -e "\t"$"Arg 3: "$"-d: pass message through dbus (when invoked by GUI)" + echo -e "\t "$"-y: install without asking confirmation [Be careful!]" } @@ -131,9 +135,9 @@ function usage() #--------------------------------(INITIAL-CHECK)------------------------------------- #=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ # Confirm -if [ "$4" = "-y" ]; then +if [ "$3" = "-y" ]; then CONFIRM=0 -elif [ "$4" = "-d" ]; then +elif [ "$3" = "-d" ]; then CONFIRM=0 DBUS_USBINSTALL=1 # First set this else @@ -173,28 +177,22 @@ else errorAndExit $"Error(Arg 1): \"$1\" isn't a block device" 1 fi -# Check if Arg 2 is valid (it can be null) -if ["$2" ]; then - if [ -r "$2" ]; then # Chek is is readable - # Check if Arg 2 is a gz file - if [ "${2##*.}" != "gz" ]; then - errorAndExit "Error(Arg 2): you must chose a cpio.gz file" 1 - fi - export SELECT_BOOT=$2 - else - errorAndExit $"Error(Arg 2): \"$2\" is not readable" 1 +# Check if Arg 2 is valid +if [ -r "$2" ]; then # Check it is readable + # Check if Arg 2 is an iso file + if [ "${2##*.}" != "iso" ]; then + errorAndExit "Error(Arg 2): you must chose a ISO (.iso) file" 1 fi + SELECT_ISO=`readlink -f $2` +else + errorAndExit "Error(Arg 2): \"$2\" is not readable" 1 fi # Check if Arg 3 is valid -if [ -r "$3" ]; then # Chek is is readable - # Check if Arg 3 is an iso file - if [ "${3##*.}" != "iso" ]; then - errorAndExit "Error(Arg 3): you must chose a ISO (.iso) file" 1 +if [ "$3" ]; then + if [ "$3" != "-d" -a "$3" != "-t" ]; then # Check it is readable + errorAndExit $"Error(Arg 3): \"$3\" is not -d nor -t" 1 fi - SELECT_ISO=`readlink -f $3` -else - errorAndExit "Error(Arg 3): \"$3\" is not readable" 1 fi #################################(INITIAL-CHECK)##################################### @@ -297,12 +295,13 @@ grub-mkimage -o $MOUNTDIR_EFI/EFI/BOOT/bootx64.efi -O x86_64-efi -p /efi/boot \ } # 32bit EFI optional because untested and curently missing in x86_64 arch -[ -d /usr/lib/grub/i386-efi ] && \ -grub-mkimage -o $MOUNTDIR_EFI/EFI/BOOT/bootia32.efi -O i386-efi -p /efi/boot \ - part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot linux echo \ - help gfxterm gettext png efi_gop efi_uga search search_label search_fs_uuid || { - errorAndExit $"Error: unable to create GRUB i386-efi image" -} +if [ -d /usr/lib/grub/i386-efi ]; then + grub-mkimage -o $MOUNTDIR_EFI/EFI/BOOT/bootia32.efi -O i386-efi -p /efi/boot \ + part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot linux echo \ + help gfxterm gettext png efi_gop efi_uga search search_label search_fs_uuid || { + errorAndExit $"Error: unable to create GRUB i386-efi image" + } +fi # Riceve la mountdir della chiavetta da dbus MOUNTDIR=`dbus_properties_get_stringlist org.freedesktop.UDisks /org/freedesktop/UDisks/devices/${SELECT_USB/*\/}2 \