From patchwork Fri Sep 8 13:18:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Berg X-Patchwork-Id: 9943989 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 994256034B for ; Fri, 8 Sep 2017 13:19:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8AAA0286F1 for ; Fri, 8 Sep 2017 13:19:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7FA5A286F5; Fri, 8 Sep 2017 13:19:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E7FF2286F1 for ; Fri, 8 Sep 2017 13:19:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755942AbdIHNTB (ORCPT ); Fri, 8 Sep 2017 09:19:01 -0400 Received: from s3.sipsolutions.net ([5.9.151.49]:35872 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755916AbdIHNTA (ORCPT ); Fri, 8 Sep 2017 09:19:00 -0400 Received: by sipsolutions.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1dqJBT-00051I-4Y; Fri, 08 Sep 2017 15:18:59 +0200 From: Johannes Berg To: backports@vger.kernel.org Cc: Johannes Berg Subject: [PATCH] backports-update-manager: split --force into --yes and --no-keep Date: Fri, 8 Sep 2017 15:18:57 +0200 Message-Id: <20170908131857.11429-1-johannes@sipsolutions.net> X-Mailer: git-send-email 2.14.1 Sender: backports-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: backports@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Johannes Berg --yes allows skipping the question --no-keep allows removing all installed data and reinstalling --force does both (as before) Signed-off-by: Johannes Berg --- devel/backports-update-manager | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/devel/backports-update-manager b/devel/backports-update-manager index e22ba3463135..64df29bcea26 100755 --- a/devel/backports-update-manager +++ b/devel/backports-update-manager @@ -103,8 +103,7 @@ class backport_kernel_updater: result.sort(key = lambda x: make_version_tuple(x[0][1:])) return [x[1] for x in result] - def __init__(self, - force=False, + def __init__(self, yes=False, no_keep=False, git_trees_only=False, reference=None): self.ksrc_base = "" @@ -121,7 +120,8 @@ class backport_kernel_updater: self.kernel_vers = list() self.kernel_vers_count = list() self.root = os.geteuid() == 0 - self.force = force + self.yes = yes + self.no_keep = no_keep self.git_trees_only = git_trees_only self.reference = reference self.reference_git = None @@ -209,7 +209,7 @@ class backport_kernel_updater: self.ksrc_prefix + "/usr/src")) sys.stdout.write("** This is a terrible idea. Consider running " \ "as a non root.\n") - if not self.force: + if not self.yes: answer = input("Do you still want to continue (y/N)? ") if answer != "y": sys.exit(1) @@ -271,7 +271,7 @@ class backport_kernel_updater: sys.exit(1) sys.stdout.write("\n") def warn_size_reqs(self): - if self.force: + if self.yes: return if not self.git_trees_only: self.warn_size_reqs_about() @@ -447,7 +447,7 @@ class backport_kernel_updater: if kver['count'] >= 2: sys.stdout.write("%s - up to date!\n" % kver.get('ver')) def is_new_kernel(self, string): - if self.force: + if self.no_keep: return True for kernel in self.all_new_kernels: if string in kernel: @@ -586,7 +586,11 @@ def _main(): parser = argparse.ArgumentParser(description='Linux kernel backports update manager') parser.add_argument('--force', const=True, default=False, action="store_const", - help='Force run without sanity or careful user checks') + help='Alias for --yes --no-keep') + parser.add_argument('--yes', const=True, default=False, action="store_const", + help='Assume yes on all questions') + parser.add_argument('--no-keep', const=True, default=False, action="store_const", + help='Don\'t keep existing installs, overwrite all again') parser.add_argument('--git-trees-only', const=True, default=False, action="store_const", help='Only download or update the required git trees') parser.add_argument('--reference', metavar='', type=str, @@ -594,7 +598,8 @@ def _main(): help='Override what argument to use to git clone --reference') args = parser.parse_args() - bk_updater = backport_kernel_updater(force=args.force, + bk_updater = backport_kernel_updater(yes=args.yes or args.force, + no_keep=args.no_keep or args.force, git_trees_only=args.git_trees_only, reference=args.reference)