From 2ca0b957f2b971f30d89d23a3a90d4eb73cd771f Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 26 Feb 2025 10:10:10 +0800 Subject: [PATCH] scripts: import: Pass "--insert" to importers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So that importers can adjust the file before inserting. * guix/scripts/import.scm (%standard-import-options): Add ‘--file-to-insert’. (guix-import): Pass it to importers when ‘--insert’ is set. Change-Id: I8e7a18ee8e0f96d7fc5688a207a7a5390ad2fa30 --- guix/scripts/import.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index 3b6d9bf3de5..c2f9cbdebf4 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -25,12 +25,15 @@ (define-module (guix scripts import) #:use-module (guix import utils) + #:use-module (guix diagnostics) + #:use-module (guix i18n) #:use-module (guix ui) #:use-module (guix scripts) #:use-module (guix read-print) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-37) #:use-module (ice-9 format) #:use-module (ice-9 match) #:export (%standard-import-options @@ -41,7 +44,14 @@ ;;; Command line options. ;;; -(define %standard-import-options '()) +(define %standard-import-options + (list + ;; Hidden option for importer-specific file preprocessing. + (option '("file-to-insert") #f #t + (lambda (opt name arg result) + (if (file-exists? arg) + (alist-cons 'file-to-insert arg result) + (leave (G_ "file '~a' does not exist~%") arg)))))) ;;; @@ -152,7 +162,10 @@ PROC callback." (newline port) (newline port) (close-port port))))))))) - (import-as-definitions importer args find-and-insert))) + (import-as-definitions importer + (cons (string-append "--file-to-insert=" file) + args) + find-and-insert))) ((importer args ...) (let ((print (lambda (expr) (leave-on-EPIPE