From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id sABsLsks5V5nIwAA0tVLHw (envelope-from ) for ; Sat, 13 Jun 2020 19:45:13 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id wKFGKsks5V4MOgAAB5/wlQ (envelope-from ) for ; Sat, 13 Jun 2020 19:45:13 +0000 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 2A4619404C5 for ; Sat, 13 Jun 2020 19:45:13 +0000 (UTC) Received: from localhost ([::1]:60686 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jkC5Y-0006MN-2U for larch@yhetil.org; Sat, 13 Jun 2020 15:45:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37356) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jkC5O-0006Jq-PA for guix-patches@gnu.org; Sat, 13 Jun 2020 15:45:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59223) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jkC5O-0007Xk-DO for guix-patches@gnu.org; Sat, 13 Jun 2020 15:45:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jkC5O-0001tF-BE for guix-patches@gnu.org; Sat, 13 Jun 2020 15:45:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41253] [PATCH v4] guix repl: Add script execution. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 13 Jun 2020 19:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41253 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Konrad Hinsen Cc: 41253@debbugs.gnu.org Received: via spool by 41253-submit@debbugs.gnu.org id=B41253.15920775007243 (code B ref 41253); Sat, 13 Jun 2020 19:45:02 +0000 Received: (at 41253) by debbugs.gnu.org; 13 Jun 2020 19:45:00 +0000 Received: from localhost ([127.0.0.1]:42536 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jkC5M-0001sk-22 for submit@debbugs.gnu.org; Sat, 13 Jun 2020 15:45:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jkC5K-0001sX-Um for 41253@debbugs.gnu.org; Sat, 13 Jun 2020 15:44:59 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34240) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jkC5F-0007VW-Hu; Sat, 13 Jun 2020 15:44:53 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=45590 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jkC5F-0007Ha-1h; Sat, 13 Jun 2020 15:44:53 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20200514162537.29071-1-zimon.toutoune@gmail.com> <87mu585l8y.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 26 Prairial an 228 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sat, 13 Jun 2020 21:44:51 +0200 In-Reply-To: (Konrad Hinsen's message of "Sat, 13 Jun 2020 18:39:42 +0200") Message-ID: <87v9juyclo.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: -1.01 X-TUID: vWArdVlIFApa Hi, Konrad Hinsen skribis: >> =E2=80=9CWhen one or more @var{file} argument is provided, each @var{fil= e} is >> executed as a Guile program:=E2=80=9D > > No, that's no longer true. Only one script can be run at a time, because > > guix repl script1.scm script2.scm > > now means "run script1.scm with script2.scm as its argument". And therefo= re... Ah OK, sorry for the confusion. >>> + (define script-file >>> + (let ((file (car script)) >>> + (directory (getcwd))) >>> + (canonicalize-path >>> + (cond ((string-prefix? "/" file) file) >>> + (else (string-append directory "/" file)))))) >> >> I think we can just use file names as they arrive, without attempting to >> canonicalize them or anything. > > That's what I thought (and tried) as well, at first. Problems: > > - It doesn't work when run via pre-inst-env with a non-absolute > filename for the script. The script is looked up relative > to the directory containing repl.scm. Oh right, that=E2=80=99s because we=E2=80=99re using =E2=80=98load=E2=80=99= . We should instead do: (load-in-vicinity "." file) Alternatively, (primitive-load file), but in that case the script would be systematically interpreted. > - The script filename is also the first item of (command-line) > when called inside the script, and that's useful only it it's > an absolute filename. In what way is it useful? >>> +cat > "$tmpfile"<>> +#!/usr/bin/env -S guix repl -- >> >> Rather: >> >> #!$(type -P env) > > I didn't know that was possible on a shebang line! It=E2=80=99s not, but here it=E2=80=99s evaluated as part of the here-docum= ent expansion. Thanks! Ludo=E2=80=99.