Browse Source

Merge pull request #17 from apodogrocki/MEN-2147

Fix few functions' return values
1.0.x
Adam Podogrocki 6 years ago
committed by GitHub
parent
commit
8bcd63c232
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 88
      mender-convert.sh
  2. 5
      rpi3-convert-stage-5.sh

88
mender-convert.sh

@ -192,6 +192,7 @@ do_raw_disk_image_shrink_rootfs() {
# Find first available loopback device. # Find first available loopback device.
loopdevice=($(losetup -f)) loopdevice=($(losetup -f))
[ $? -ne 0 ] && { echo "Error: inaccesible loopback device"; return 1; }
# Mount appropriate partition. # Mount appropriate partition.
if [[ $count -eq 1 ]]; then if [[ $count -eq 1 ]]; then
@ -200,11 +201,9 @@ do_raw_disk_image_shrink_rootfs() {
sudo losetup $loopdevice $raw_disk_image -o $(($rootfsstart * $sector_size)) sudo losetup $loopdevice $raw_disk_image -o $(($rootfsstart * $sector_size))
else else
echo "Error: invalid/unsupported embedded raw disk image. Aborting." echo "Error: invalid/unsupported embedded raw disk image. Aborting."
exit 1 return 1
fi fi
[ $? -ne 0 ] && { echo "Error: inaccesible loopback device"; exit 1; }
block_size=($(sudo dumpe2fs -h $loopdevice | grep 'Block size' | tr -s ' ' | cut -d ' ' -f3)) block_size=($(sudo dumpe2fs -h $loopdevice | grep 'Block size' | tr -s ' ' | cut -d ' ' -f3))
min_size_blocks=($(sudo resize2fs -P $loopdevice | awk '{print $NF}')) min_size_blocks=($(sudo resize2fs -P $loopdevice | awk '{print $NF}'))
@ -237,6 +236,8 @@ do_raw_disk_image_shrink_rootfs() {
echo "Image new endsector: $endsector" echo "Image new endsector: $endsector"
truncate -s $((($endsector+1) * $sector_size)) $raw_disk_image truncate -s $((($endsector+1) * $sector_size)) $raw_disk_image
echo "Root filesystem size (sectors): $new_size_sectors" echo "Root filesystem size (sectors): $new_size_sectors"
return 0
} }
do_raw_disk_image_create_partitions() { do_raw_disk_image_create_partitions() {
@ -258,7 +259,7 @@ do_raw_disk_image_create_partitions() {
local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w) local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w)
[[ $supported -eq 0 ]] && \ [[ $supported -eq 0 ]] && \
{ echo "Error: incorrect device type. Aborting."; exit 1; } { echo "Error: incorrect device type. Aborting."; return 1; }
mkdir -p $output_dir && cd $output_dir mkdir -p $output_dir && cd $output_dir
@ -270,7 +271,7 @@ do_raw_disk_image_create_partitions() {
sector_size image_type sector_size image_type
[ -z "${prootfs_size}" ] && \ [ -z "${prootfs_size}" ] && \
{ echo "root filesystem size not set. Aborting."; exit 1; } { echo "root filesystem size not set. Aborting."; return 1; }
local mender_disk_image_size= local mender_disk_image_size=
calculate_mender_disk_size $pboot_start $pboot_size \ calculate_mender_disk_size $pboot_start $pboot_size \
@ -315,6 +316,8 @@ do_raw_disk_image_create_partitions() {
[ $rc -eq 0 ] && { echo -e "\n$mender_disk_image image created."; } \ [ $rc -eq 0 ] && { echo -e "\n$mender_disk_image image created."; } \
|| { echo -e "\n$mender_disk_image image composing failure."; } || { echo -e "\n$mender_disk_image image composing failure."; }
return $rc
} }
do_make_sdimg_beaglebone() { do_make_sdimg_beaglebone() {
@ -377,16 +380,17 @@ do_make_sdimg_raspberrypi3() {
set_fstab $device_type set_fstab $device_type
[[ $keep = "-k" ]] && { rm -f $output_dir/boot.vfat\ [[ $keep != "-k" ]] && { rm -f $output_dir/boot.vfat\
$output_dir/cmdline.txt $output_dir/config.txt\ $output_dir/cmdline.txt $output_dir/config.txt\
$output_dir/rootfs.img; } $output_dir/rootfs.img; }
return 0
} }
do_install_mender_to_mender_disk_image() { do_install_mender_to_mender_disk_image() {
# Mender executables, service and configuration files installer. # Mender executables, service and configuration files installer.
if [ -z "$mender_disk_image" ] || [ -z "$device_type" ] || [ -z "$mender_client" ] || \ if [ -z "$mender_disk_image" ] || [ -z "$device_type" ] || \
[ -z "$artifact_name" ]; then [ -z "$mender_client" ] || [ -z "$artifact_name" ]; then
show_help show_help
exit 1 exit 1
fi fi
@ -394,7 +398,7 @@ do_install_mender_to_mender_disk_image() {
local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w) local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w)
[[ $supported -eq 0 ]] && \ [[ $supported -eq 0 ]] && \
{ echo "Error: incorrect device type. Aborting."; exit 1; } { echo "Error: incorrect device type. Aborting."; return 1; }
# mender-image-1.5.0 # mender-image-1.5.0
stage_4_args="-m $mender_disk_image -d $device_type -g ${mender_client} -a ${artifact_name}" stage_4_args="-m $mender_disk_image -d $device_type -g ${mender_client} -a ${artifact_name}"
@ -428,6 +432,8 @@ do_install_mender_to_mender_disk_image() {
# Update test configuration file # Update test configuration file
update_test_config_file $device_type artifact-name $artifact_name update_test_config_file $device_type artifact-name $artifact_name
return 0
} }
do_install_bootloader_to_mender_disk_image() { do_install_bootloader_to_mender_disk_image() {
@ -440,7 +446,7 @@ do_install_bootloader_to_mender_disk_image() {
local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w) local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w)
[[ $supported -eq 0 ]] && \ [[ $supported -eq 0 ]] && \
{ echo "Error: incorrect device type. Aborting."; exit 1; } { echo "Error: incorrect device type. Aborting."; return 1; }
case "$device_type" in case "$device_type" in
"beaglebone") "beaglebone")
@ -466,6 +472,8 @@ do_install_bootloader_to_mender_disk_image() {
update_test_config_file $device_type mount-location "\/uboot" update_test_config_file $device_type mount-location "\/uboot"
;; ;;
esac esac
return 0
} }
do_mender_disk_image_to_artifact() { do_mender_disk_image_to_artifact() {
@ -492,13 +500,12 @@ do_mender_disk_image_to_artifact() {
local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w) local supported=$(echo ${supported_devices[@]} | grep -o $device_type | wc -w)
[[ $supported -eq 0 ]] && \ [[ $supported -eq 0 ]] && \
{ echo "Error: incorrect device type. Aborting."; exit 1; } { echo "Error: incorrect device type. Aborting."; return 1; }
inarray=$(echo ${rootfs_partition_ids[@]} | grep -o $rootfs_partition_id | wc -w)
inarray=$(echo ${rootfs_types[@]} | grep -o $rootfs_type | wc -w)
[[ $inarray -eq 0 ]] && \ [[ $inarray -eq 0 ]] && \
{ echo "Error: invalid rootfs type provided. Aborting."; exit 1; } { echo "Error: invalid rootfs partition id provided. Aborting."; return 1; }
local count= local count=
local bootstart= local bootstart=
@ -508,14 +515,14 @@ do_mender_disk_image_to_artifact() {
local rootfs_b_size= local rootfs_b_size=
local rootfs_path= local rootfs_path=
local sdimg_device_type= local sdimg_device_type=
local abort=0
get_mender_disk_info $mender_disk_image count sector_size rootfs_a_start \ get_mender_disk_info $mender_disk_image count sector_size rootfs_a_start \
rootfs_a_size rootfs_b_start rootfs_b_size rootfs_a_size rootfs_b_start rootfs_b_size
ret=$? ret=$?
[[ $ret -ne 0 ]] && \ [[ $ret -ne 0 ]] && \
{ echo "Error: cannot validate Mender disk image. Aborting."; exit 1; } { echo "Error: cannot validate Mender disk image. Aborting."; return 1; }
# Check if device type matches.
create_device_maps $mender_disk_image mender_disk_mappings create_device_maps $mender_disk_image mender_disk_mappings
mount_mender_disk ${mender_disk_mappings[@]} mount_mender_disk ${mender_disk_mappings[@]}
@ -528,22 +535,22 @@ do_mender_disk_image_to_artifact() {
fi fi
# Find .sdimg file's dedicated device type. # Find .sdimg file's dedicated device type.
sdimg_device_type=$( cat $sdimg_data_dir/mender/device_type | sed 's/[^=].*=//' ) mender_device_type=$( cat $sdimg_data_dir/mender/device_type | sed 's/[^=].*=//' )
# Set 'artifact name' as passed in the command line. # Set 'artifact name' as passed in the command line.
sudo sed -i '/^artifact/s/=.*$/='${artifact_name}'/' "$rootfs_path/etc/mender/artifact_info" sudo sed -i '/^artifact/s/=.*$/='${artifact_name}'/' "$rootfs_path/etc/mender/artifact_info"
if [ "$sdimg_device_type" != "$device_type" ]; then if [ "$mender_device_type" != "$device_type" ]; then
echo "Error: .mender and .sdimg device type not matching. Aborting." echo "Error: device types of Mender artifact & Mender not matching. Aborting."
abort=1 ret=1
fi fi
if [[ $(which mender-artifact) = 1 ]]; then if [[ $(which mender-artifact) = 1 ]]; then
echo "Error: mender-artifact not found in PATH. Aborting." echo "Error: mender-artifact not found in PATH. Aborting."
abort=1 ret=1
fi fi
if [ $abort -eq 0 ]; then if [ $ret -eq 0 ]; then
local rootfs_file=${output_dir}/rootfs.ext4 local rootfs_file=${output_dir}/rootfs.ext4
echo "Creating a ext4 file-system image from modified root file-system" echo "Creating a ext4 file-system image from modified root file-system"
@ -575,18 +582,27 @@ do_mender_disk_image_to_artifact() {
detach_device_maps ${mender_disk_mappings[@]} detach_device_maps ${mender_disk_mappings[@]}
rm -rf $sdimg_base_dir rm -rf $sdimg_base_dir
[[ $ret -ne 0 ]] && { exit 1; } [[ $ret -ne 0 ]] && { return $ret; }
} }
do_from_raw_disk_image() { do_from_raw_disk_image() {
if [ -z "$mender_disk_image" ] || [ -z "$raw_disk_image" ] || \
[ -z "$device_type" ] || [ -z "$artifact_name" ] || \
[ -z "$mender_client" ] || [ -z "$bootloader_toolchain" ]; then
show_help
return 1
fi
do_raw_disk_image_create_partitions || rc=$? do_raw_disk_image_create_partitions || rc=$?
[[ $rc -ne 0 ]] && { exit 1; } [[ $rc -ne 0 ]] && { return 1; }
do_install_mender_to_mender_disk_image || rc=$? do_install_mender_to_mender_disk_image || rc=$?
[[ $rc -ne 0 ]] && { exit 1; } [[ $rc -ne 0 ]] && { return 1; }
do_install_bootloader_to_mender_disk_image || rc=$? do_install_bootloader_to_mender_disk_image || rc=$?
[[ $rc -ne 0 ]] && { exit 1; } [[ $rc -ne 0 ]] && { return 1; }
return 0
} }
#read -s -p "Enter password for sudo: " sudoPW #read -s -p "Enter password for sudo: " sudoPW
@ -680,24 +696,32 @@ sudo true
case "$1" in case "$1" in
raw-disk-image-shrink-rootfs) raw-disk-image-shrink-rootfs)
do_raw_disk_image_shrink_rootfs do_raw_disk_image_shrink_rootfs || rc=$?
[[ $rc -ne 0 ]] && { return 1; }
;; ;;
raw-disk-image-create-partitions) raw-disk-image-create-partitions)
do_raw_disk_image_create_partitions do_raw_disk_image_create_partitions || rc=$?
[[ $rc -ne 0 ]] && { exit 1; }
;; ;;
install-mender-to-mender-disk-image) install-mender-to-mender-disk-image)
do_install_mender_to_mender_disk_image do_install_mender_to_mender_disk_image || rc=$?
[[ $rc -ne 0 ]] && { exit 1; }
;; ;;
install-bootloader-to-mender-disk-image) install-bootloader-to-mender-disk-image)
do_install_bootloader_to_mender_disk_image do_install_bootloader_to_mender_disk_image || rc=$?
[[ $rc -ne 0 ]] && { exit 1; }
;; ;;
mender-disk-image-to-artifact) mender-disk-image-to-artifact)
do_mender_disk_image_to_artifact do_mender_disk_image_to_artifact || rc=$?
[[ $rc -ne 0 ]] && { exit 1; }
;; ;;
from-raw-disk-image) from-raw-disk-image)
do_from_raw_disk_image do_from_raw_disk_image || rc=$?
[[ $rc -ne 0 ]] && { exit 1; }
;; ;;
*) *)
show_help show_help
;; ;;
esac esac
exit 0

5
rpi3-convert-stage-5.sh

@ -178,10 +178,11 @@ do_install_bootloader() {
mkdir -p $output_dir && cd $output_dir mkdir -p $output_dir && cd $output_dir
# Build patched U-Boot files. # Build patched U-Boot files.
build_uboot_files $bootloader_toolchain || rc=$? build_uboot_files $bootloader_toolchain
rc=$?
cd $output_dir cd $output_dir
if [ "$rc" -eq 0 ]; then if [ $rc -eq 0 ]; then
mount_mender_disk ${mender_disk_mappings[@]} mount_mender_disk ${mender_disk_mappings[@]}
install_files ${output_dir}/sdimg/boot ${output_dir}/sdimg/primary install_files ${output_dir}/sdimg/boot ${output_dir}/sdimg/primary
fi fi

Loading…
Cancel
Save