diff options
author | Michael Hudson <michael.hudson@linaro.org> | 2010-12-10 12:19:08 +1300 |
---|---|---|
committer | Michael Hudson <michael.hudson@linaro.org> | 2010-12-10 12:19:08 +1300 |
commit | ac25e497b1f16f2cad9d54035fb89017ee1506e9 (patch) | |
tree | 15b083c40aa12c51a858bb6d7d86d1c13720ffb5 /linaro-hwpack-install | |
parent | 439694a55d44c1102e09ae1ee84d240e98a9e331 (diff) | |
parent | a84949a23420dd33da4a519be1613e31c6874b54 (diff) |
merge --force-yes support
Diffstat (limited to 'linaro-hwpack-install')
-rwxr-xr-x | linaro-hwpack-install | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/linaro-hwpack-install b/linaro-hwpack-install index 5684c51..101c498 100755 --- a/linaro-hwpack-install +++ b/linaro-hwpack-install @@ -26,6 +26,7 @@ LOCKFILE="/var/lock/hwpack" TEMP_DIR=$(mktemp -d) HWPACK_DIR="${TEMP_DIR}/unpacked" INSTALL_LATEST="no" +FORCE_YES="no" SOURCES_LIST_FILE="${TEMP_DIR}/sources.list" APT_GET_OPTIONS="Dir::Etc::SourceList=${SOURCES_LIST_FILE}" SUPPORTED_FORMATS="1.0 2.0" # A space-separated list of hwpack formats. @@ -35,21 +36,33 @@ die() { exit 1 } -usage_msg="Usage: $(basename $0) [--install-latest] HWPACK_TARBALL" +usage_msg="Usage: $(basename $0) [--install-latest] [--force-yes] HWPACK_TARBALL" if [ $# -eq 0 ]; then die $usage_msg -elif [ $# -eq 1 ]; then - HWPACK_TARBALL=$1 -elif [ $# -eq 2 ]; then - if [ "$1" != "--install-latest" ]; then - die "Unknown argument: $1 \n$usage_msg" - fi - INSTALL_LATEST="yes" - HWPACK_TARBALL=$2 -else - die $usage_msg fi +HWPACK_TARBALL_FOUND="no" + +while [ $# -gt 0 ]; do + case "$1" in + --install-latest) + INSTALL_LATEST="yes" + shift;; + --force-yes) + FORCE_YES="yes" + shift;; + --*) + die $usage_msg "\nUnrecognized option: \"$1\"";; + *) + [ "$HWPACK_TARBALL_FOUND" = "yes" ] && die $usage_msg + HWPACK_TARBALL="$1" + HWPACK_TARBALL_FOUND="yes" + shift;; + esac +done + +[ "$HWPACK_TARBALL_FOUND" = "no" ] && die $usage_msg + # Try to acquire fd #9 (i.e. /var/lock/hwpack) for 2 seconds. # Using 9 as the file descriptor because of https://launchpad.net/bugs/249620 exec 9>$LOCKFILE @@ -127,17 +140,23 @@ cat /etc/apt/sources.list >> "$SOURCES_LIST_FILE" sudo apt-get -o "$APT_GET_OPTIONS" update -qq echo -n "Installing packages ..." + +if [ "$FORCE_YES" == "yes" ]; then + FORCE_OPTIONS="--yes --force-yes" +else + FORCE_OPTIONS="" +fi + if [ "$format" == "2.0" ]; then HWPACK_NAME=`grep NAME "${HWPACK_DIR}/metadata" | cut -d "=" -f2` HWPACK_VERSION=`grep VERSION "${HWPACK_DIR}/metadata" | cut -d "=" -f2` - sudo apt-get -o "$APT_GET_OPTIONS" install hwpack-"$HWPACK_NAME=$HWPACK_VERSION" + sudo apt-get $FORCE_OPTIONS -o "$APT_GET_OPTIONS" install hwpack-"$HWPACK_NAME=$HWPACK_VERSION" elif [ "$format" == "1.0" ]; then if [ "$INSTALL_LATEST" == "yes" ]; then packages=`sed 's/=.*//' "${HWPACK_DIR}"/manifest` else packages=`cat "${HWPACK_DIR}"/manifest` fi - sudo apt-get -o "$APT_GET_OPTIONS" install $packages + sudo apt-get $FORCE_OPTIONS -o "$APT_GET_OPTIONS" install $packages fi - echo "Done" |