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 previous generations of the profile remain available, should the user
want to roll back. 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 @table @code
@item --install=@var{package} @item --install=@var{package}

@ -458,6 +458,13 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
(setvbuf (current-error-port) _IOLBF) (setvbuf (current-error-port) _IOLBF)
(let ((opts (parse-options))) (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 (with-error-handling
(or (process-query opts) (or (process-query opts)
(parameterize ((%guile-for-build (parameterize ((%guile-for-build
@ -466,7 +473,3 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
%bootstrap-guile %bootstrap-guile
guile-final)))) guile-final))))
(process-actions opts)))))) (process-actions opts))))))
;; Local Variables:
;; eval: (put 'guard 'scheme-indent-function 1)
;; End: