echo " --mount, -m Try to mount /boot/efi first"
echo " --verbose, -v Verbose output"
echo " --force Force file updates"
+ echo " --auto Automatic run from packages %post"
}
msg () {
- echo "efi-boot-update: $*" >&2
+ echo -E "efi-boot-update: $*" >&2
}
verbose () {
if is_yes "$VERBOSE" ; then
- echo "efi-boot-update: $*" >&2
+ echo -E "efi-boot-update: $*" >&2
fi
}
verbose_cmd () {
if is_yes "$VERBOSE" ; then
- echo "+$*" >&2
+ echo -E "+$*" >&2
fi
"$@"
}
if [ "$item" = "$2" ] ; then
continue
fi
- echo -n "$item "
+ echo -nE "$item "
done
}
esac
done
src="$1"; shift
- dst="$2"; shift
+ dst="$1"; shift
if [ -n "$*" ] ; then
msg "update_file: unexpected arguments: $*"
return 1
fi
+ if [ -z "$src" ] ; then
+ msg "update_file: no source file"
+ return 1
+ fi
+ if [ -z "$dst" ] ; then
+ dst=`basename "$src"`
+ fi
if [ "${dst#/}" = "${dst}" ] ; then
# relative path
dst="$DESTDIR/$dst"
}
add_bootmgr_entry () {
- local label=$1
- local binary=$2
- local args=$3
+ local label="$1"
+ local binary="$2"
+ local args="$3"
local bootnum
bootnum=$(find_bootmgr_entry "$label")
binary="$DESTDIR/$binary"
fi
binary="${binary#/boot/efi}"
- binary="$(echo -n "$binary"|sed -e's;/;\\;g')"
+ binary="$(echo -nE "$binary"|sed -e's;/;\\;g')"
if [ -n "$bootnum" ] ; then
echo -n "$args" | verbose_cmd $EFIBOOTMGR $EFIBOOTMGR_OPTS --quiet \
echo -n "$*" | tr -c '[a-zA-Z0-9_]' '_'
}
+ALLOW_AUTO="no"
FORCE_UPDATES="no"
MOUNT_EFI_PARTITION="no"
LABEL_PREFIX=""
-DEFAULT=""
VERBOSE="no"
[ -e /etc/efi-boot/update.conf ] && . /etc/efi-boot/update.conf
+AUTO_RUN=no
+
while [ -n "$*" ] ; do
local arg
arg="$1"
--force)
FORCE_UPDATES="yes"
;;
+ --auto)
+ is_yes "$ALLOW_AUTO" || exit 0
+ AUTO_RUN=yes
+ ;;
*)
usage >&2
exit 2
fi
fi
+if ! is_yes "$ALLOW_AUTO" && ! is_yes "$AUTO_RUN"; then
+ msg "ALLOW_AUTO is not enabled in /etc/efi-boot/update.conf,"
+ msg "files will not be automatically updated on upgrades."
+fi
+
# vi: ft=sh sw=4 sts=4 et