From d5f4f5a944cb60f9068976d1d91e981d21c79cb2 Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Fri, 7 Jul 2023 23:18:33 -0700 Subject: [PATCH] Add special '$GID' variable in Eshell * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add '$GID'. * test/lisp/eshell/esh-var-tests.el (esh-var-test/gid-var): New test. * doc/misc/eshell.texi (Variables): Document '$GID'. --- doc/misc/eshell.texi | 7 +++++++ lisp/eshell/esh-var.el | 1 + test/lisp/eshell/esh-var-tests.el | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 5972d2834b0..a1f541da9da 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -993,6 +993,13 @@ Variables its value will be @acronym{UID} for the user associated with that remote connection. +@vindex $GID +@item $GID +This returns the effective @acronym{GID} for the current user. Like +@code{$UID}, this variable is connection-aware, so when the current +directory is remote, its value will be @acronym{GID} for the user +associated with that remote connection. + @vindex $_ @item $_ This refers to the last argument of the last command. With a diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index 7dcaff1e24f..c7c0a21d2a9 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -163,6 +163,7 @@ eshell-variable-aliases-list ("LINES" ,(lambda () (window-body-height nil 'remap)) t t) ("INSIDE_EMACS" eshell-inside-emacs t) ("UID" ,(lambda () (file-user-uid)) nil t) + ("GID" ,(lambda () (file-group-gid)) nil t) ;; for esh-ext.el ("PATH" (,(lambda () (string-join (eshell-get-path t) (path-separator))) diff --git a/test/lisp/eshell/esh-var-tests.el b/test/lisp/eshell/esh-var-tests.el index 771bd5a419c..3e58fe749dd 100644 --- a/test/lisp/eshell/esh-var-tests.el +++ b/test/lisp/eshell/esh-var-tests.el @@ -829,6 +829,10 @@ esh-var-test/uid-var "Test that $UID is equivalent to (user-uid) for local directories." (eshell-command-result-equal "echo $UID" (user-uid))) +(ert-deftest esh-var-test/gid-var () + "Test that $GID is equivalent to (group-gid) for local directories." + (eshell-command-result-equal "echo $GID" (group-gid))) + (ert-deftest esh-var-test/last-status-var-lisp-command () "Test using the \"last exit status\" ($?) variable with a Lisp command." (with-temp-eshell -- 2.25.1