Subject: guix pull -l fails on fresh user profiles

From: Pierre Neidhardt <[email-masked]>
Date: Sat, 19 Jan 2019 18:55:05 +0100

Switch to a new user, or simply log in as 'root' if you've never "guix
pull"ed with it, then

--8<---------------cut here---------------start------------->8---
# guix pull -l
Backtrace:
           8 (apply-smob/1 #<catch-closure 11508e0>)
In ice-9/boot-9.scm:
    705:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guile-user) 11d2140>)))
In guix/ui.scm:
  1644:12  5 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  4 (catch srfi-34 #<procedure 2e24be0 at guix/ui.scm:622:…> …)
    829:9  3 (catch system-error #<procedure 2e24c80 at guix/script…> …)
    829:9  2 (catch git-error #<procedure 2e24b40 at guix/scripts/p…> …)
    829:9  1 (catch system-error #<procedure 2e28c40 at guix/script…> …)
In unknown file:
           0 (raise #<condition &profile-not-found-error [profile: "…>)

ERROR: In procedure raise:
Wrong type (expecting exact integer): #<condition &profile-not-found-error [profile: "/var/guix/profiles/per-user/root/current-guix"] 2e1e8c0>
--8<---------------cut here---------------end--------------->8---

I think we should make `guix pull -l' return a value that can be used
meaningfully in deployment scripts.  For instance, a non-zero
exit code could mean this is a fresh user profile.

Thoughts?

-- 
Pierre Neidhardt
https://ambrevar.xyz/