From patchwork Tue Apr 14 17:19:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ricardo Wurmus X-Patchwork-Id: 21248 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3707B27BBE4; Tue, 14 Apr 2020 18:29:58 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id F048F27BBE1 for ; Tue, 14 Apr 2020 18:29:57 +0100 (BST) Received: from localhost ([::1]:36262 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jOPNl-0000tK-DP for patchwork@mira.cbaines.net; Tue, 14 Apr 2020 13:29:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48085) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jOPFC-0005j5-1D for guix-patches@gnu.org; Tue, 14 Apr 2020 13:21:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jOPF9-0007Lh-TW for guix-patches@gnu.org; Tue, 14 Apr 2020 13:21:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51405) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jOPF9-0007Lc-PY for guix-patches@gnu.org; Tue, 14 Apr 2020 13:21:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jOPF9-0006bp-MJ for guix-patches@gnu.org; Tue, 14 Apr 2020 13:21:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#40629] [PATCH 5/5] scripts/package: Handle JSON files. Resent-From: Ricardo Wurmus Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Apr 2020 17:21:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40629 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 40629@debbugs.gnu.org Cc: Ricardo Wurmus Received: via spool by 40629-submit@debbugs.gnu.org id=B40629.158688482425309 (code B ref 40629); Tue, 14 Apr 2020 17:21:03 +0000 Received: (at 40629) by debbugs.gnu.org; 14 Apr 2020 17:20:24 +0000 Received: from localhost ([127.0.0.1]:34714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jOPEW-0006a9-9I for submit@debbugs.gnu.org; Tue, 14 Apr 2020 13:20:24 -0400 Received: from sender4-of-o53.zoho.com ([136.143.188.53]:21369) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jOPEU-0006Zu-93 for 40629@debbugs.gnu.org; Tue, 14 Apr 2020 13:20:22 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1586884820; cv=none; d=zohomail.com; s=zohoarc; b=UCDzHqPF9y9e+mljEmkkQRM/BVGsb9zbL5pKFsN/6jDSFtW+ybAelpbT+4LiKaExajJ4r0UVs7QAx1g+Xn3gpEkmwOaOG560BGNXi9Qxmj9fUttVn9k0GuaEzHDQPHmKTooVI3moPTz4ngmKDL8XBB/ufbW31Xcz1GdRDPgCK3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586884820; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=yYjahCN0fdCv3EAxJIwAUr102ZQtAZO/Z9faAECH/X8=; b=AzZ76GiROeiVPH1UIje72qnm9SfcKK0mZlorpgH65a0gEVfBVhWEy5kNF4wIXKJugzM3PJcMQP2se24UxwBqm+oWGGxc9xO7DsXJ7/oKkoP5Me3adxdM7PuRyECXxIo8dso+l7dzdV1P1/Nl636mnRY89+HMTK0qWz5F2cmC7IM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1586884820; s=zoho; d=elephly.net; i=rekado@elephly.net; h=From:To:Cc:Message-ID:Subject:Date:In-Reply-To:References:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=yYjahCN0fdCv3EAxJIwAUr102ZQtAZO/Z9faAECH/X8=; b=BVRf3usffMt7bySBO/+OnQc6GPyrcdEUK9IYUGl5TQo1XlkxMTwNo1PzGaAVAzvO TACPNHwbUqZMcVq4fBSfJJi/ESNIuts2dFrvlr4tqerPmuf8CNHhw5ups0oP7gaa1Jt Cq2nBSbnJiTeJ6LpypOk+bF2Pdr0iRm/+AbNKM7s= Received: from localhost (p54AD4D5F.dip0.t-ipconnect.de [84.173.77.95]) by mx.zohomail.com with SMTPS id 1586884819336344.9745503257118; Tue, 14 Apr 2020 10:20:19 -0700 (PDT) From: Ricardo Wurmus Message-ID: <20200414171959.3428-5-rekado@elephly.net> Date: Tue, 14 Apr 2020 19:19:59 +0200 X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200414171959.3428-1-rekado@elephly.net> References: <20200414171959.3428-1-rekado@elephly.net> MIME-Version: 1.0 X-ZohoMailClient: External X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * guix/scripts/package.scm (%options): Support loading from JSON files when "install-from-file" is used. --- guix/scripts/package.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index badb1dcd38..40445832aa 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2016 Benz Schenk ;;; Copyright © 2016 Chris Marusich ;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix search-paths) + #:use-module (guix import json) #:use-module (guix monads) #:use-module (guix utils) #:use-module (guix config) @@ -418,7 +420,10 @@ Install, remove, or upgrade packages in a single transaction.\n")) (option '(#\f "install-from-file") #t #f (lambda (opt name arg result arg-handler) (values (alist-cons 'install - (load* arg (make-user-module '())) + (let ((file (or (and (string-suffix? ".json" arg) + (json->scheme-file arg)) + arg))) + (load* file (make-user-module '()))) result) #f))) (option '(#\r "remove") #f #t