diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-09-30 22:42:15 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-09-30 22:42:15 +0000 |
commit | 9af9ab42126869b0be920db0224b7e1da58342a1 (patch) | |
tree | 696cb996c35a75a15729f86ded875a0bcdffdc09 /perl/lib | |
parent | d0ed11ca729344fd00251d0bc31f0c2f32d2c6a7 (diff) | |
parent | f4f3203aa7c2fc9225a8ae220db25593066fb397 (diff) |
Merge branch 'path-info' into ca-drv-exotic
Diffstat (limited to 'perl/lib')
-rw-r--r-- | perl/lib/Nix/Store.pm | 1 | ||||
-rw-r--r-- | perl/lib/Nix/Store.xs | 13 |
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: |