guix-package: Create ~/.guix-profile when it doesn't exist.

* guix-package.in (guix-package): Create the %USER-ENVIRONMENT-DIRECTORY
  symlink if it doesn't exist yet.
* doc/guix.texi (Invoking guix-package): Document it.
This commit is contained in:
Ludovic Courtès 2013-01-09 19:57:44 +01:00
parent 44b6be7744
commit b9e5c0a949
2 changed files with 13 additions and 4 deletions

@ -428,6 +428,12 @@ the transaction. Upon completion, a new profile is created, but
previous generations of the profile remain available, should the user
want to roll back.
For each user, a symlink to the user's default profile is automatically
created in @file{$HOME/.guix-profile}. This symlink always point to the
current generation of the user's default profile. Thus, users can add
@file{$HOME/.guix-profile/bin} to their @code{PATH} environment
variable, and so on.
@table @code
@item --install=@var{package}

@ -458,6 +458,13 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
(setvbuf (current-error-port) _IOLBF)
(let ((opts (parse-options)))
;; Create ~/.guix-profile if it doesn't exist yet.
(when (and %user-environment-directory
%current-profile
(not (file-exists? %user-environment-directory)))
(symlink %current-profile %user-environment-directory))
(with-error-handling
(or (process-query opts)
(parameterize ((%guile-for-build
@ -466,7 +473,3 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
%bootstrap-guile
guile-final))))
(process-actions opts))))))
;; Local Variables:
;; eval: (put 'guard 'scheme-indent-function 1)
;; End: