[bug#73438] Better error message in checkStoreName

Message ID 871q1ad3a4.fsf@denver.mail-host-address-is-not-set
State New
Headers
Series [bug#73438] Better error message in checkStoreName |

Commit Message

Brennan Vincent Sept. 23, 2024, 11:21 a.m. UTC
  When trying to pass a local-file beginning with a dot to something like
home-files-service-type, one gets an error message like:

guix home: error: invalid name: `.vimrc'

which does not explain what went wrong. This update should make it more clear.

Change-Id: I045a663bc6cd9844677c65b38a31d3941cf212b5
---
 nix/libstore/store-api.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 6ea75bb9bcc52521f0bb3f121799745fdc17f1c9
  

Comments

Ludovic Courtès Nov. 17, 2024, 9:42 p.m. UTC | #1
Brennan Vincent <brennan@umanwizard.com> skribis:

> When trying to pass a local-file beginning with a dot to something like
> home-files-service-type, one gets an error message like:
>
> guix home: error: invalid name: `.vimrc'
>
> which does not explain what went wrong. This update should make it more clear.
>
> Change-Id: I045a663bc6cd9844677c65b38a31d3941cf212b5

I tweaked the commit log to match our conventions and applied it,
thanks!

Ludo’.
  

Patch

diff --git a/nix/libstore/store-api.cc b/nix/libstore/store-api.cc
index 781fb9e693..38a1403a71 100644
--- a/nix/libstore/store-api.cc
+++ b/nix/libstore/store-api.cc
@@ -61,7 +61,7 @@  void checkStoreName(const string & name)
     /* Disallow names starting with a dot for possible security
        reasons (e.g., "." and ".."). */
     if (string(name, 0, 1) == ".")
-        throw Error(format("invalid name: `%1%'") % name);
+        throw Error(format("invalid name: `%1%' (can't begin with dot)") % name);
     foreach (string::const_iterator, i, name)
         if (!((*i >= 'A' && *i <= 'Z') ||
               (*i >= 'a' && *i <= 'z') ||