aboutsummaryrefslogtreecommitdiff
path: root/perl/lib
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-09-30 22:42:15 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-09-30 22:42:15 +0000
commit9af9ab42126869b0be920db0224b7e1da58342a1 (patch)
tree696cb996c35a75a15729f86ded875a0bcdffdc09 /perl/lib
parentd0ed11ca729344fd00251d0bc31f0c2f32d2c6a7 (diff)
parentf4f3203aa7c2fc9225a8ae220db25593066fb397 (diff)
Merge branch 'path-info' into ca-drv-exotic
Diffstat (limited to 'perl/lib')
-rw-r--r--perl/lib/Nix/Store.pm1
-rw-r--r--perl/lib/Nix/Store.xs13
2 files changed, 14 insertions, 0 deletions
diff --git a/perl/lib/Nix/Store.pm b/perl/lib/Nix/Store.pm
index 179f1dc90..3e4bbee0a 100644
--- a/perl/lib/Nix/Store.pm
+++ b/perl/lib/Nix/Store.pm
@@ -22,6 +22,7 @@ our @EXPORT = qw(
derivationFromPath
addTempRoot
getBinDir getStoreDir
+ queryRawRealisation
);
our $VERSION = '0.15';
diff --git a/perl/lib/Nix/Store.xs b/perl/lib/Nix/Store.xs
index 4a9df2ae2..28f62dc57 100644
--- a/perl/lib/Nix/Store.xs
+++ b/perl/lib/Nix/Store.xs
@@ -15,6 +15,7 @@
#include "crypto.hh"
#include <sodium.h>
+#include <nlohmann/json.hpp>
using namespace nix;
@@ -120,6 +121,18 @@ SV * queryPathInfo(char * path, int base32)
croak("%s", e.what());
}
+SV * queryRawRealisation(char * outputId)
+ PPCODE:
+ try {
+ auto realisation = store()->queryRealisation(DrvOutput::parse(outputId));
+ if (realisation)
+ XPUSHs(sv_2mortal(newSVpv(realisation->toJSON().dump().c_str(), 0)));
+ else
+ XPUSHs(sv_2mortal(newSVpv("", 0)));
+ } catch (Error & e) {
+ croak("%s", e.what());
+ }
+
SV * queryPathFromHashPart(char * hashPart)
PPCODE: