Wire up flashImage

This commit is contained in:
2021-11-13 17:00:35 -05:00
parent fc55036f6e
commit f5109b3f2e

View File

@@ -26,6 +26,8 @@ OPTIONS
(For testing, enabled by default for --ssh-upgrade)
--flash, -f DEVICE
Example: /dev/sdX
--reset
CLeanup all source and output files
--debug, -d
--help, -h
EOF
@@ -38,7 +40,9 @@ input() {
debug "${FUNCNAME[0]}"
if _input=$(getopt -o +v:p:i:lb:f:dh -l release:,profile:,info:,list-profiles,builddir:,ssh-upgrade:,ssh-backup:,flash:,debug,help -- "$@"); then
unset RESET
if _input=$(getopt -o +v:p:i:lb:f:dh -l release:,profile:,info:,list-profiles,builddir:,ssh-upgrade:,ssh-backup:,flash:,reset,debug,help -- "$@"); then
eval set -- "$_input"
while true; do
case "$1" in
@@ -64,7 +68,10 @@ input() {
shift && SSH_BACKUP_PATH="$1"
;;
--flash|-f)
shift && flash_dev="$1"
shift && FLASH_DEV="$1"
;;
--reset)
RESET=true
;;
--debug|-d)
echo "Debugging on"
@@ -91,10 +98,6 @@ profiles() {
debug "${FUNCNAME[0]}"
[[ -z $DEBUG ]] && DEBUG=false # Set to true to enable debugging by default
[[ -z $BUILDDIR ]] && BUILDDIR="$PWD"
[[ -z $FILESDIR ]] && FILESDIR="$BUILDDIR/files/"
# Additional packages to install for all profiles
default_packages="\
luci \
@@ -360,14 +363,6 @@ getImageBuilder() {
}
# copyFiles() {
# debug "${FUNCNAME[0]}"
# declare -l _this_files_dir="$_files_dir/$PROFILE"
# [[ ! -d "$_files_dir" ]] && return
# $PROFILE == "r2s"
# }
makeImage() {
debug "${FUNCNAME[0]}"
@@ -398,6 +393,9 @@ sshBackup() {
debug "${FUNCNAME[0]}"
local _date _hostname _backup_fname
[[ -d "$FILESDIR" ]] || mkdir -p "$FILESDIR"
printf -v _date '%(%Y-%m-%d-%H-%M-%S)T'
_hostname=$(ssh -qt "$SSH_BACKUP_PATH" echo -n \$HOSTNAME)
_backup_fname="backup-$_hostname-$_date.tar.gz"
@@ -435,7 +433,7 @@ flashImage() {
local _umount
if [[ ! -e "$flash_dev" ]]; then
if [[ ! -e "$FLASH_DEV" ]]; then
echo "The device specified by --flash could not be found"
exit 1
fi
@@ -456,13 +454,13 @@ flashImage() {
debug "gunzip -qfk $img_gz"
gunzip -qfk "$img_gz"
echo "Unmounting target device $flash_dev partitions"
_umount=( "$flash_dev"?* )
echo "Unmounting target device $FLASH_DEV partitions"
_umount=( "$FLASH_DEV"?* )
debug "umount ${_umount[*]}"
sudo umount "${_umount[@]}"
debug "sudo dd if=\"$img\" of=\"$flash_dev\" bs=2M conv=fsync"
if sudo dd if="$img" of="$flash_dev" bs=2M conv=fsync; then
debug "sudo dd if=\"$img\" of=\"$FLASH_DEV\" bs=2M conv=fsync"
if sudo dd if="$img" of="$FLASH_DEV" bs=2M conv=fsync; then
sync
echo "Image flashed sucessfully!"
else
@@ -505,17 +503,31 @@ askOk() {
}
reset() {
askOk "Remove $FILESDIR $BUILDDIR/sources $BUILDDIR/bin?" || exit $?
debug "rm -rf $FILESDIR $BUILDDIR/sources $BUILDDIR/bin"
rm -rf "$FILESDIR" "${BUILDDIR:?}/sources" "${BUILDDIR:?}/bin"
}
main() {
: "${DEBUG:=false}" # Set to true to enable debugging by default
scriptdir=$(dirname "$0")
# scriptdir="$PWD"
: "${BUILDDIR:=$scriptdir}"
: "${FILESDIR:=$BUILDDIR/files}"
input "$@"
profiles
[[ -v RESET ]] && reset
prerequisites
getImageBuilder
#copyFiles
[[ -v SSH_BACKUP_PATH ]] && sshBackup
if makeImage; then
[[ -v SSH_UPGRADE_PATH ]] && sshUpgrade
[[ -v flash_dev ]] && flashImage
[[ -v FLASH_DEV ]] && flashImage
fi
}