From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id iJGFEHYWJWQRXgEASxT56A (envelope-from ) for ; Thu, 30 Mar 2023 06:56:22 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id UDqcEHYWJWTbYAAA9RJhRA (envelope-from ) for ; Thu, 30 Mar 2023 06:56:22 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 031FA3D0E6 for ; Thu, 30 Mar 2023 06:56:21 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1phkKR-0007fp-SX; Thu, 30 Mar 2023 00:56:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1phkKQ-0007fL-EB for guix-patches@gnu.org; Thu, 30 Mar 2023 00:56:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1phkKQ-0001G4-5s for guix-patches@gnu.org; Thu, 30 Mar 2023 00:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1phkKP-0002LH-RE for guix-patches@gnu.org; Thu, 30 Mar 2023 00:56:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#59318] [PATCH v2] etc: committer: Add --package-directory and --help flags. References: <20221116185853.13957-1-antero@mailbox.org> In-Reply-To: <20221116185853.13957-1-antero@mailbox.org> Resent-From: Antero Mejr Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 30 Mar 2023 04:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59318 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch moreinfo To: 59318@debbugs.gnu.org Cc: liliana.prikler@gmail.com, maxim.cournoyer@gmail.com Received: via spool by 59318-submit@debbugs.gnu.org id=B59318.16801521498983 (code B ref 59318); Thu, 30 Mar 2023 04:56:01 +0000 Received: (at 59318) by debbugs.gnu.org; 30 Mar 2023 04:55:49 +0000 Received: from localhost ([127.0.0.1]:55400 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phkKC-0002Ko-Uy for submit@debbugs.gnu.org; Thu, 30 Mar 2023 00:55:49 -0400 Received: from mout-p-102.mailbox.org ([80.241.56.152]:37698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1phkK8-0002KW-Uk for 59318@debbugs.gnu.org; Thu, 30 Mar 2023 00:55:46 -0400 Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4PnB203GTxz9sk8; Thu, 30 Mar 2023 06:55:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org; s=mail20150812; t=1680152136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ezdilwMHhniJZjTguooID4P8QcxwOV1W1qDSn2nBqRI=; b=dKhWAvDBbmb4TY+VpjFhM4kaaRODeiRLQMqjBgH62YyB/LPp4Kia9L2Ck3IOWGJ6H++zwU z+ENsrNnwlMUVozMBMiSnXoEmNyfi1aFD26TJVijKpG3df+AMzsRttYT4tsgnbekMAdXXK 6Bp7hbY1qCHZgnGt2PmrnkRa1Aqo7g6l+Pl+yUFu93iq0Uu2edbC9ftiEeEAMNHjtYIlTl /4nP0YWq1PTPo6VYmW8gXtIFResjCbvcdwB6bW0apBlcZoTb2zQPBnfH7E56tQLvn5RTN4 cfBM4JhzQMTJ3zFKoPiZUJ4YHP2nNhAbD8nuP0wbXBRo1DHGqL1EEWkAURkxwQ== Date: Thu, 30 Mar 2023 04:55:12 +0000 Message-Id: <20230330045512.18858-1-antero@mailbox.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MBO-RS-META: gcosbj73z4ngtedbucyuxrikmowpkhex X-MBO-RS-ID: 2ca341c89dde32dd89e X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Antero Mejr X-ACL-Warn: , Antero Mejr via Guix-patches From: Antero Mejr via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1680152182; a=rsa-sha256; cv=none; b=DQ5UC/59tUel+iT1hyYiS/KokHLExDC65byjcRT842xbs8t0pg1eKobLTcjjKY/wpmon6p PhZWdCJQALwjJdFwilCxYcGOMi5dozzx6cC6DvkPpBVwi8uIe+mC2DwpO8JEnpKSxNFIpb Epw7ys4NE6oHDoE9JI5vVweBayNAt4fn4fTgYdVEXE6w6MD7gMkJm95iyo7bMSM0mIOoT+ 8Sp9PnHGIuMD2Q3+/Ua49bsadDyhIyAZMF/P9WOVBuqGWB+8t69ouEE8aKEqjv9jVkffs8 O76OEHnx9ZTsUxw8T0eOVslr5xF9qzUb6LRwWDHxh2eyxrsuBsgYK+SVPxBKmw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=mailbox.org header.s=mail20150812 header.b=dKhWAvDB; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1680152182; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=ezdilwMHhniJZjTguooID4P8QcxwOV1W1qDSn2nBqRI=; b=EAtIeKSfEL7uleO6tCIQb9oxk2m1m8+01B66Z/RqMTaNhX8DMqIbmhhi1gkqWPbO4v+TE6 D0FrPAuA8CcSe8pWHQIknUC2XjjrEzmwEjtQeWP3Bq7uWoaFp9PqpoBx4a5B06EoqT7JjF gYSlEoz2fhRJjKh5WIFsYYvKS/2AwQHgI9zTZWrdJGvkpLdTQqbJ4UYJiR/wrHte+hkTkv JNmQ0JJ2LgbVFQPBzRwQHMZGAhw4ony9XR0d6UjXvGdy7LfIANfmxrf3wuBjcQbLKmTMvb NNqaqCh6AIXscg7+yMmSkYM4opWPPpY7UGzVmtvUKokPftLEjyCny2lwNph5ig== X-Migadu-Spam-Score: -4.32 X-Spam-Score: -4.32 X-Migadu-Queue-Id: 031FA3D0E6 X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=mailbox.org header.s=mail20150812 header.b=dKhWAvDB; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-TUID: i7SCO/+/Oy91 * etc/committer.scm.in (prepend-package-dir, show-help): New procedures. (change-commit-message, add-commit-message, remove-commit-message, custom-commit-message): Use prepend-package-dir. (diff-info): Use the %package-dir parameter. (main): Use SRFI-37 argument parser. --- etc/committer.scm.in | 54 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/etc/committer.scm.in b/etc/committer.scm.in index e7f1ca8c45..44e9e3cef9 100755 --- a/etc/committer.scm.in +++ b/etc/committer.scm.in @@ -7,6 +7,7 @@ ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2023 Antero Mejr ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,13 +36,15 @@ (srfi srfi-9) (srfi srfi-11) (srfi srfi-26) + (srfi srfi-37) (ice-9 format) (ice-9 popen) (ice-9 match) (ice-9 rdelim) (ice-9 regex) (ice-9 textual-ports) - (guix gexp)) + (guix gexp) + (guix scripts)) (define* (break-string str #:optional (max-line-length 70)) "Break the string STR into lines that are no longer than MAX-LINE-LENGTH. @@ -138,7 +141,7 @@ (define (diff-info) ;; new definitions with changes to existing ;; definitions. "--unified=1" - "--" "gnu"))) + "--" (%package-dir)))) (define (extract-line-number line-tag) (abs (string->number (car (string-split line-tag #\,))))) @@ -221,6 +224,9 @@ (define (new-sexp hunk) (+ (lines-to-first-change hunk) (hunk-new-line-number hunk)))))) +(define (prepend-package-dir msg) + (format #f "~a: ~a" (%package-dir) msg)) + (define* (change-commit-message file-name old new #:optional (port (current-output-port))) "Print ChangeLog commit message for changes between OLD and NEW." (define (get-values expr field) @@ -247,7 +253,8 @@ (define version (and=> ((xpath:sxpath '(// version *any*)) new) first)) (format port - "gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%" + (prepend-package-dir + "~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%") variable-name version file-name variable-name version) (for-each (lambda (field) (let ((old-values (get-values old field)) @@ -276,14 +283,15 @@ (define* (add-commit-message file-name variable-name #:optional (port (current-output-port))) "Print ChangeLog commit message for a change to FILE-NAME adding a definition." - (format port "gnu: Add ~a.~%~%* ~a (~a): New variable.~%" + (format port (prepend-package-dir "Add ~a.~%~%* ~a (~a): New variable.~%") variable-name file-name variable-name)) (define* (remove-commit-message file-name variable-name #:optional (port (current-output-port))) "Print ChangeLog commit message for a change to FILE-NAME removing a definition." - (format port "gnu: Remove ~a.~%~%* ~a (~a): Delete variable.~%" + (format port (prepend-package-dir + "Remove ~a.~%~%* ~a (~a): Delete variable.~%") variable-name file-name variable-name)) (define* (custom-commit-message file-name variable-name message changelog @@ -301,7 +309,8 @@ (define (changelog-has-location? changelog) (let* ((message (trim message)) (changelog (if changelog (trim changelog) message)) - (message/f (format #f "gnu: ~a: ~a." variable-name message)) + (message/f (format #f (prepend-package-dir "~a: ~a.") + variable-name message)) (changelog/f (if (changelog-has-location? changelog) (format #f "* ~a (~a)~a." file-name variable-name changelog) @@ -348,7 +357,40 @@ (define (new+old+hunks hunks) (define %delay 1000) +;;; +;;; Command line options. +;;; + +(define (show-help) + (display "Usage: committer.scm +Git commit unstaged package definition changes.\n") + (display " +-p, --package-dir=DIR specify the name of the package directory, + which is \"gnu\" by default.") + (newline) + (display "-h, --help display this help and exit") + (newline)) + +(define %options + ;; Specification of the command-line options. + (list (option '(#\p "package-dir") #t #f + (lambda (opt name arg result) + (alist-cons 'package-dir arg result))) + (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))))) + +(define %default-options + ;; Alist of default option values. + '((package-dir . "gnu"))) + +(define %package-dir (make-parameter #f)) + (define (main . args) + (define opts (parse-command-line args %options (list %default-options))) + (%package-dir (assoc-ref opts 'package-dir)) + (define* (change-commit-message* file-name old new #:rest rest) (let ((changelog #f)) (match args -- 2.38.1