guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Ludovic Courtès
Date: Tue, 28 Nov 2023 10:26:20 -0500 (EST)

branch: master
commit a68b3d71221195d09bac3fb78c35bebb3579fdb9
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Nov 27 15:19:33 2023 +0100

    utils: Add ‘gather-user-privileges’.
    
    * src/cuirass/scripts/remote-server.scm (gather-user-privileges): Move to…
    * src/cuirass/utils.scm (gather-user-privileges): … here.
---
 src/cuirass/scripts/remote-server.scm | 12 ------------
 src/cuirass/utils.scm                 | 17 ++++++++++++++++-
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/cuirass/scripts/remote-server.scm 
b/src/cuirass/scripts/remote-server.scm
index aaf0041..485fa95 100644
--- a/src/cuirass/scripts/remote-server.scm
+++ b/src/cuirass/scripts/remote-server.scm
@@ -589,18 +589,6 @@ exiting."
       (terminate-helper-processes)
       (primitive-exit 1))))
 
-(define (gather-user-privileges user)
-  "switch to the identity of user, a user name."
-  (catch 'misc-error
-    (lambda ()
-      (let ((user (getpw user)))
-        (setgroups #())
-        (setgid (passwd:gid user))
-        (setuid (passwd:uid user))))
-    (lambda (key proc message args . rest)
-      (leave (G_ "user '~a' not found: ~a~%")
-             user (apply format #f message args)))))
-
 (define (cuirass-remote-server args)
   (signal-handler)
   (with-error-handling
diff --git a/src/cuirass/utils.scm b/src/cuirass/utils.scm
index a55a795..1ef5eae 100644
--- a/src/cuirass/utils.scm
+++ b/src/cuirass/utils.scm
@@ -28,6 +28,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-19)
   #:use-module (srfi srfi-71)
+  #:autoload   (guix i18n) (G_)
+  #:autoload   (guix ui) (leave)
   #:use-module (fibers)
   #:use-module (fibers channels)
   #:use-module (fibers operations)
@@ -44,7 +46,8 @@
 
             date->rfc822-str
             random-string
-            call-with-time))
+            call-with-time
+            gather-user-privileges))
 
 (define-syntax-rule (define-enumeration name (symbol value) ...)
   "Define an 'enum' type with the given SYMBOL/VALUE pairs.  NAME is defined a
@@ -217,3 +220,15 @@ values."
          (result (call-with-values thunk list))
          (end    (current-time time-monotonic)))
     (apply kont (time-difference end start) result)))
+
+(define (gather-user-privileges user)
+  "switch to the identity of user, a user name."
+  (catch 'misc-error
+    (lambda ()
+      (let ((user (getpw user)))
+        (setgroups #())
+        (setgid (passwd:gid user))
+        (setuid (passwd:uid user))))
+    (lambda (key proc message args . rest)
+      (leave (G_ "user '~a' not found: ~a~%")
+             user (apply format #f message args)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]