From owner-svn-src-user@FreeBSD.ORG Mon Sep 12 00:50:34 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02D47106566C; Mon, 12 Sep 2011 00:50:34 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CD93E8FC14; Mon, 12 Sep 2011 00:50:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8C0oXx1003037; Mon, 12 Sep 2011 00:50:33 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8C0oXjX003035; Mon, 12 Sep 2011 00:50:33 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201109120050.p8C0oXjX003035@svn.freebsd.org> From: Doug Barton Date: Mon, 12 Sep 2011 00:50:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225496 - user/dougb/portmaster X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Sep 2011 00:50:34 -0000 Author: dougb Date: Mon Sep 12 00:50:33 2011 New Revision: 225496 URL: http://svn.freebsd.org/changeset/base/225496 Log: Add the ability to retry package creation. This is mostly useful for PM_SU_CMD after a build that took so long that your sudo ticket has expired. While I'm at it, apply the benefits of looking at old code with fresh eyes to the other place where there are 3 options in the menu (and thus neither of the get_answer*() variants are appropriate. Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Sun Sep 11 23:37:40 2011 (r225495) +++ user/dougb/portmaster/portmaster Mon Sep 12 00:50:33 2011 (r225496) @@ -1714,16 +1714,27 @@ pm_pkg_create () { echo " ===>>> Package saved to ${1}/All" ; echo '' fi else - echo '' - echo "===>>> Package creation failed for ${2}!" - echo '' + local answer + + while : ; do + echo -e "\n===>>> Package creation failed for ${2}!\n" + + [ -n "$backup" -a -n "$PM_IGNORE_FAILED_BACKUP_PACKAGE" ] && return - [ -n "$backup" -a -n "$PM_IGNORE_FAILED_BACKUP_PACKAGE" ] && return + echo "===>>> Ignore this error [i]" + echo "===>>> Abort update [a]" + echo "===>>> Retry [r]" + echo -e "\n===>>> How would you like to proceed? [i] \c" + read answer ; echo '' - echo "===>>> Ignore this error [i]" - echo "===>>> Abort [a]" - get_answer_g i a "\n===>>> How would you like to proceed?" - case "$?" in 1) fail "Package creation failed for $2" ;; esac + case "$answer" in + ''|[iI]) break ;; + [aA]) fail "Package creation failed for $2" ;; + [rR]) pm_pkg_create $1 $2 ; break ;; + *) echo " ===>>> $answer is not a valid response" ;; + esac + done + unset answer fi } @@ -3455,26 +3466,25 @@ fetch_package () { echo " on setting the PACKAGESITE environment variable" [ "$PM_PACKAGES" = only -a -z "$FETCH_ONLY" ] && fail $ponly_err if [ -n "$FETCH_ONLY" ]; then - while [ -z "$continue" ]; do + while : ; do echo -e "\n===>>> There is no valid package to install\n" echo "===>>> Abort update [a]" echo "===>>> Retry fetch [r]" echo "===>>> Continue if possible [c]" - echo '' - echo -n "===>>> How would you like to proceed? [a] " + echo -e "\n===>>> How would you like to proceed? [a] \c" read answer ; echo '' case "$answer" in - a|'') fail "No package exists for $new_port" ;; - r) if fetch_package $new_port try ; then + ''|[aA]) fail "No package exists for $new_port" ;; + [rR]) if fetch_package $new_port try ; then latest_pv=$new_port - continue=continue + break fi ;; - c) safe_exit ;; + [cC]) safe_exit ;; *) echo " ===>>> $answer is not a valid response" ;; esac done - unset continue answer + unset answer fi else latest_pv=${latest_pv#*href=\"}