about summary refs log tree commit diff
path: root/src/nix-prefetch-url/nix-prefetch-url.cc
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-10-07T12·55+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-10-07T12·55+0200
commitf08449ccbd2009b858aae18341aedf3d0829b91a (patch)
tree0a5a9a6fe1a009dd9243db14a0e8f1d302cbf887 /src/nix-prefetch-url/nix-prefetch-url.cc
parente4abf8610be3d9f3023a538460f87be8f31bca2d (diff)
nix-prefetch-url: Add --name option
This allows overriding the name component of the resulting Nix store
path, which is necessary if the base name of the URI contains
"illegal" characters.
Diffstat (limited to 'src/nix-prefetch-url/nix-prefetch-url.cc')
-rw-r--r--src/nix-prefetch-url/nix-prefetch-url.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/nix-prefetch-url/nix-prefetch-url.cc b/src/nix-prefetch-url/nix-prefetch-url.cc
index a3932d6bed55..0a8166da4aa1 100644
--- a/src/nix-prefetch-url/nix-prefetch-url.cc
+++ b/src/nix-prefetch-url/nix-prefetch-url.cc
@@ -75,6 +75,8 @@ int main(int argc, char * * argv)
             }
             else if (*arg == "--unpack")
                 unpack = true;
+            else if (*arg == "--name")
+                name = getArg(*arg, arg, end);
             else if (parseAutoArgs(arg, end, autoArgs_))
                 ;
             else if (parseSearchPathArg(arg, end, searchPath))
@@ -125,9 +127,11 @@ int main(int argc, char * * argv)
                 unpack = state.forceString(*attr->value) == "recursive";
 
             /* Extract the name. */
-            attr = v.attrs->find(state.symbols.create("name"));
-            if (attr != v.attrs->end())
-                name = state.forceString(*attr->value);
+            if (name.empty()) {
+                attr = v.attrs->find(state.symbols.create("name"));
+                if (attr != v.attrs->end())
+                    name = state.forceString(*attr->value);
+            }
         }
 
         /* Figure out a name in the Nix store. */