* [bug#51657] [PATCH] scripts: home: Make ‘guix home import’ populate ‘home-configuration.scm
@ 2021-11-07 11:13 Xinglu Chen
2021-11-17 15:44 ` bug#51657: " Ludovic Courtès
0 siblings, 1 reply; 2+ messages in thread
From: Xinglu Chen @ 2021-11-07 11:13 UTC (permalink / raw)
To: 51657; +Cc: Ludovic Courtès, Andrew Tropin
* guix/scripts/home.scm (process-command): Populate ‘home-configuration.scm’
in the destination directory instead of printing to stdout.
* doc/guix.texi (Declaring the Home Environment): Adjust accordingly.
(Invoking guix home): Likewise.
Suggested-by: Ludovic Courtès <ludo@gnu.org>
---
doc/guix.texi | 34 +++++++---------------------------
guix/scripts/home.scm | 7 ++++++-
2 files changed, 13 insertions(+), 28 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index ea1973f02c..ebcc725184 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -35865,9 +35865,8 @@
such as @file{~/.bashrc} found in your home directory and copies them to
the given directory, @file{~/src/guix-config} in this case; it also
reads the contents of your profile, @file{~/.guix-profile}, and, based
-on that, it outputs a Home configuration that resembles your current
-configuration. You can dump that configuration to a file and you're
-ready to go!
+on that, it populates @file{~/src/guix-config/home-configuration.scm}
+with a Home configuration that resembles your current configuration.
A simple setup can include Bash and a custom text configuration, like in
the example below. Don't be afraid to declare home environment parts,
@@ -36537,33 +36536,14 @@
@item import
Generate a @dfn{home environment} from the packages in the default
profile and configuration files found in the user's home directory. The
-configuration files will be copied to the specified directory. Note
-that not every home service that exists is supported (@pxref{Home
-Services}).
+configuration files will be copied to the specified directory, and a
+@file{home-configuration.scm} will be populated with the home
+environment. Note that not every home service that exists is supported
+(@pxref{Home Services}).
@example
$ guix home import ~/guix-config
-;; This "home-environment" file can be passed to 'guix home reconfigure'
-;; to reproduce the content of your profile. This is "symbolic": it only
-;; specifies package names. To reproduce the exact same profile, you also
-;; need to capture the channels being used, as returned by "guix describe".
-;; See the "Replicating Guix" section in the manual.
-
-(use-modules
- (gnu home)
- (gnu packages)
- (gnu home services shells))
-
-(home-environment
- (packages
- (map specification->package
- (list "glibc-locales" "nss-certs" "nss")))
- (services
- (list (service
- home-bash-service-type
- (home-bash-configuration
- (bashrc
- (list (local-file "/home/charlie/guix-config/.bashrc"))))))))
+/home/alice/guix-config has been populated with all the configuration files of your home environment. Run 'guix home reconfigure /home/alice/guix-config/home-configuration.scm' to make it take effect.
@end example
@end table
diff --git a/guix/scripts/home.scm b/guix/scripts/home.scm
index 3f48b98ed4..118e66895e 100644
--- a/guix/scripts/home.scm
+++ b/guix/scripts/home.scm
@@ -274,7 +274,12 @@ (define-syntax-rule (with-store* store exp ...)
(_ (leave (G_ "wrong number of arguments~%"))))))
(unless (file-exists? destination)
(mkdir-p destination))
- (import-manifest manifest destination (current-output-port))))
+ (call-with-output-file
+ (string-append destination "/home-configuration.scm")
+ (cut import-manifest manifest destination <>))
+ (format #t (G_ "~a/ has been populated with all the configuration files \
+of your home environment. Run 'guix home reconfigure ~a/home-configuration.scm' \
+to make it take effect.") destination destination)))
((describe)
(match (generation-number %guix-home)
(0
base-commit: 1ffc0a6be3c1613b2d99ceea098174d1f11f6f3f
--
2.33.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* bug#51657: [PATCH] scripts: home: Make ‘guix home import’ populate ‘home-configuration.scm
2021-11-07 11:13 [bug#51657] [PATCH] scripts: home: Make ‘guix home import’ populate ‘home-configuration.scm Xinglu Chen
@ 2021-11-17 15:44 ` Ludovic Courtès
0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2021-11-17 15:44 UTC (permalink / raw)
To: Xinglu Chen; +Cc: 51657-done, Andrew Tropin
[-- Attachment #1: Type: text/plain, Size: 401 bytes --]
Hello,
Xinglu Chen <public@yoctocell.xyz> skribis:
> * guix/scripts/home.scm (process-command): Populate ‘home-configuration.scm’
> in the destination directory instead of printing to stdout.
> * doc/guix.texi (Declaring the Home Environment): Adjust accordingly.
> (Invoking guix home): Likewise.
Applied with the changes below. This is looking nice now!
Thanks!
Ludo’.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1570 bytes --]
diff --git a/doc/guix.texi b/doc/guix.texi
index 5ce18fdf8a..59ceb4477a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -36673,7 +36673,7 @@ environment. Note that not every home service that exists is supported
@example
$ guix home import ~/guix-config
-/home/alice/guix-config has been populated with all the configuration files of your home environment. Run 'guix home reconfigure /home/alice/guix-config/home-configuration.scm' to make it take effect.
+guix home: '/home/alice/guix-config' populated with all the Home configuration files
@end example
@end table
diff --git a/guix/scripts/home.scm b/guix/scripts/home.scm
index 118e66895e..afc7d8b39c 100644
--- a/guix/scripts/home.scm
+++ b/guix/scripts/home.scm
@@ -277,9 +277,12 @@ (define-syntax-rule (with-store* store exp ...)
(call-with-output-file
(string-append destination "/home-configuration.scm")
(cut import-manifest manifest destination <>))
- (format #t (G_ "~a/ has been populated with all the configuration files \
-of your home environment. Run 'guix home reconfigure ~a/home-configuration.scm' \
-to make it take effect.") destination destination)))
+ (info (G_ "'~a' populated with all the Home configuration files~%")
+ destination)
+ (display-hint (format #f (G_ "\
+Run @command{guix home reconfigure ~a/home-configuration.scm} to effectively
+deploy the home environment described by these files.\n")
+ destination))))
((describe)
(match (generation-number %guix-home)
(0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-11-17 15:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-07 11:13 [bug#51657] [PATCH] scripts: home: Make ‘guix home import’ populate ‘home-configuration.scm Xinglu Chen
2021-11-17 15:44 ` bug#51657: " Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).