From d9b767640c9e9582ef026ec14008eeab19a4e2ba Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Thu, 27 Feb 2025 15:37:31 +0800 Subject: [PATCH] =?UTF-8?q?scripts:=20import:=20Skip=20existing=20definiti?= =?UTF-8?q?on=20for=20=E2=80=98--insert=E2=80=99=20option.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/import.scm (guix-import): Skip existing definition for ‘--insert’ option. Change-Id: I2c4242669f974b263a018ab0cf56538bd7c81d06 --- guix/scripts/import.scm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index c2f9cbdebf489f6625ff3e05ffbb66a8e2bac5c4..5de5fc9e000fa8d7ce27aaeb6e4b23b5ee30102f 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -152,16 +152,19 @@ PROC callback." (lambda (expr) (match expr (((? define-prefix? define-prefix) term _ ...) - (let ((source-properties - (find-definition-insertion-location - file term #:define-prefix define-prefix))) - (if source-properties - (insert-expression source-properties expr) - (let ((port (open-file file "a"))) - (pretty-print-with-comments port expr) - (newline port) - (newline port) - (close-port port))))))))) + ;; Skip existing definition. + (unless (find-definition-location + file term #:define-prefix define-prefix) + (let ((source-properties + (find-definition-insertion-location + file term #:define-prefix define-prefix))) + (if source-properties + (insert-expression source-properties expr) + (let ((port (open-file file "a"))) + (pretty-print-with-comments port expr) + (newline port) + (newline port) + (close-port port)))))))))) (import-as-definitions importer (cons (string-append "--file-to-insert=" file) args)