diff --git a/init.sh b/init.sh index 5b37f29..9214a3a 100755 --- a/init.sh +++ b/init.sh @@ -160,7 +160,7 @@ create_dir(){ then mkdir -p "$1" else - if [ "$2" -eq 1 ] + if [ -n "$2" ] && [ "$2" -eq 1 ] then rm -rf "$1" create_dir "$1" @@ -170,7 +170,7 @@ create_dir(){ # unmount if device is mounted umount_device (){ - local mounted_part + local mounted_part="" mounted_part=$(mount | grep "${1}[0-9]" | awk '{print $3}') if [ ! "$mounted_part" == "" ] then @@ -186,40 +186,40 @@ umount_device (){ } efi_create_key_structure () { - parted -s $1 mklabel gpt mkpart EFS fat32 1MiB 128MiB set 1 boot on mkpart debian fat32 128MiB 100% + parted -s "$1" mklabel gpt mkpart EFS fat32 1MiB 128MiB set 1 boot on mkpart debian fat32 128MiB 100% sleep 2 - mkfs.vfat ${1}1 -n efi &> /dev/null - mkfs.vfat ${1}2 -n debian &> /dev/null + mkfs.vfat "${1}1" -n efi &> /dev/null + mkfs.vfat "${1}2" -n debian &> /dev/null sync - mount ${1}2 $2 - create_dir $2/efi - mount ${1}1 $2/efi + mount "${1}2" "$2" + create_dir "$2/efi" + mount "${1}1" "$2/efi" } bios_create_key_structure() { - parted -s $1 mklabel msdos mkpart primary fat32 1MiB 100% set 1 boot on + parted -s "$1" mklabel msdos mkpart primary fat32 1MiB 100% set 1 boot on sleep 2 - mkfs.vfat ${1}1 -n debian &> /dev/null - mount ${1}1 $2 + mkfs.vfat "${1}1" -n debian &> /dev/null + mount "${1}1" "$2" } #Stop script if syslinux is not installed -if [ -z $SYSLINUX_EXE ] +if [ -z "$SYSLINUX_EXE" ] then printf "Syslinux not found, script can't continue.\n" exit 1 fi -if [ -z $PARTED_EXE ] +if [ -z "$PARTED_EXE" ] then printf "Parted not found, script can't continue.\n" exit 1 fi -process_args $@ -process_conf_file $conf_file -if [[ ! -d $syslinux_mbr_bl_folder || ! -d $syslinux_efi_bl_folder || ! -d $syslinux_modules_folder ]] +process_args "$@" +process_conf_file "$conf_file" +if [[ ! -d "$syslinux_mbr_bl_folder" || ! -d "$syslinux_efi_bl_folder" || ! -d "$syslinux_modules_folder" ]] then printf "Bad folder configuration in %s\n" "$conf_file" exit 1 @@ -240,64 +240,64 @@ repo_path="$repo_dir/$debian_arch/$debian_version" printf "Downloading Debian files\n---\n" # Création du répertoire temporaire -create_dir $repo_path -cd $repo_path +create_dir "$repo_path" +cd "$repo_path" -download $iso_file $iso_url 1 +download "$iso_file" "$iso_url" 1 for file in "vmlinuz" "initrd.gz" do - download $file $bootfiles_Debian 1 + download "$file" "$bootfiles_Debian" 1 done -cd $current_dir +cd "$current_dir" -if [ -z $device ] +if [ -z "$device" ] then printf "No destination device specified, USB key will not be created.\n" fi -create_dir $tmp_dir 1 -cp $repo_path/$iso_file $tmp_dir +create_dir "$tmp_dir" 1 +cp "$repo_path/$iso_file" "$tmp_dir" # Copy wanted syslinux file from archive case $boot_type in efi64) syslinux_folder=${tmp_dir}/efi/EFI/boot - create_dir $syslinux_folder - cp -T $syslinux_efi_bl_folder/$boot_type/syslinux.efi $syslinux_folder/bootx64.efi &> /dev/null + create_dir "$syslinux_folder" + cp -T "$syslinux_efi_bl_folder/$boot_type/syslinux.efi" "$syslinux_folder/bootx64.efi" &> /dev/null for file in $SYSLINUX_EFI_FILES do printf "copying %s \n" "$file" - cp $syslinux_modules_folder/$boot_type/$file $syslinux_folder + cp "$syslinux_modules_folder/$boot_type/$file" "$syslinux_folder" done - cp $repo_path/{vmlinuz,initrd.gz} $tmp_dir/efi - cp -R syslinux/syslinux.cfg $syslinux_folder &> /dev/null + cp "$repo_path"/{vmlinuz,initrd.gz} "$tmp_dir/efi" + cp -R syslinux/syslinux.cfg "$syslinux_folder" &> /dev/null ;; bios) syslinux_folder=${tmp_dir}/syslinux - create_dir $syslinux_folder + create_dir "$syslinux_folder" for file in $SYSLINUX_BIOS_FILES do - prin tf "copying %s\n" "$file" - cp $syslinux_modules_folder/$boot_type/$file $syslinux_folder + printf "copying %s\n" "$file" + cp "$syslinux_modules_folder/$boot_type/$file" "$syslinux_folder" done - cp $repo_path/{vmlinuz,initrd.gz} $tmp_dir - cp -R syslinux $tmp_dir &> /dev/null + cp "$repo_path"/{vmlinuz,initrd.gz} "$tmp_dir" + cp -R syslinux "$tmp_dir" &> /dev/null ;; esac for file in $SYSLINUX_FILES do printf "copying %s\n" "$file" - cp $syslinux_modules_folder/$boot_type/$file $syslinux_folder + cp "$syslinux_modules_folder/$boot_type/$file" "$syslinux_folder" done echo Copying configurations files -create_dir $tmp_dir/partman_recipes -cp -R partman_recipes $tmp_dir &> /dev/null -create_dir $tmp_dir/preseeds -cp -R preseeds $tmp_dir &> /dev/null +create_dir "$tmp_dir/partman_recipes" +cp -R partman_recipes "$tmp_dir" &> /dev/null +create_dir "$tmp_dir/preseeds" +cp -R preseeds "$tmp_dir" &> /dev/null -if [ ! -z $device ] +if [ -n "$device" ] then printf "Partitionning and formating %s\n" "$device" read -p "[WARNING] Disk $device will be erased continue [Y/N]? " -n 1 -r @@ -306,31 +306,31 @@ then exit 1 fi printf "\n\n" - umount_device $device - create_dir $key_mountpoint + umount_device "$device" + create_dir "$key_mountpoint" #dd if=/dev/zero of=${dest} bs=512 count=1 conv=notrunc &> /dev/null - case $boot_type in + case "$boot_type" in "efi64") - efi_create_key_structure $device $key_mountpoint + efi_create_key_structure "$device" "$key_mountpoint" ;; "bios") - bios_create_key_structure $device $key_mountpoint + bios_create_key_structure "$device" "$key_mountpoint" ;; esac printf "copying all file to USB drive\n" - cp -R $tmp_dir/* $key_mountpoint - umount_device $device + cp -R "$tmp_dir"/* "$key_mountpoint" + umount_device "$device" sleep 5 # Make key bootable if bios. - if [ $boot_type = "bios" ] + if [ "$boot_type" = "bios" ] then # In this mode, we need to write syslinux MBR. printf "Writing syslinux mbr.ini to %s\n" "$device" - dd bs=440 count=1 conv=notrunc if=$syslinux_mbr_bl_folder/mbr.bin of=$device + dd bs=440 count=1 conv=notrunc if="$syslinux_mbr_bl_folder"/mbr.bin of="$device" sleep 2 - $SYSLINUX_EXE --directory /syslinux --install ${device}1 + "$SYSLINUX_EXE" --directory /syslinux --install "${device}1" fi - rm -rf $TMP_DIR + rm -rf "$tmp_dir" printf "\nBootable USB key created\n" exit 0 fi