about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-11-14T13·49+0100
committerEelco Dolstra <edolstra@gmail.com>2017-11-14T13·49+0100
commit5773d667ee26efb4b977b9109da509d46d8378b5 (patch)
treedde97a115ef3aa2f421a7e7cd11c50423533f07a
parentb8d446829eb9a0f65e314039e0f910a3aceaa143 (diff)
nix ls-{nar,store}: Don't abort on missing files
-rw-r--r--src/libstore/nar-accessor.cc2
-rw-r--r--tests/nar-access.sh4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/libstore/nar-accessor.cc b/src/libstore/nar-accessor.cc
index e5042208e58b..839a7991c89f 100644
--- a/src/libstore/nar-accessor.cc
+++ b/src/libstore/nar-accessor.cc
@@ -214,7 +214,7 @@ void listNar(JSONPlaceholder & res, ref<FSAccessor> accessor,
         obj.attr("target", accessor->readLink(path));
         break;
     default:
-        abort();
+        throw Error("path '%s' does not exist in NAR", path);
     }
 }
 
diff --git a/tests/nar-access.sh b/tests/nar-access.sh
index 63f97f36cbf7..e29e4689b630 100644
--- a/tests/nar-access.sh
+++ b/tests/nar-access.sh
@@ -32,3 +32,7 @@ diff -u baz.cat-nar $storePath/foo/baz
 [[ $(nix ls-store --json $storePath) = '{"type":"directory","entries":{"foo":{},"foo-x":{},"qux":{},"zyx":{}}}' ]]
 [[ $(nix ls-store --json -R $storePath/foo) = '{"type":"directory","entries":{"bar":{"type":"regular","size":0},"baz":{"type":"regular","size":0},"data":{"type":"regular","size":58}}}' ]]
 [[ $(nix ls-store --json -R $storePath/foo/bar) = '{"type":"regular","size":0}' ]]
+
+# Test missing files.
+nix ls-store --json -R $storePath/xyzzy 2>&1 | grep 'does not exist in NAR'
+nix ls-store $storePath/xyzzy 2>&1 | grep 'does not exist'