forked from lix-project/lix
Expose a perl method to query a derivation
Just doing a very stupid thing taking as argument a serialised drv output and returning a serialised realisation. This is needed for `nix-serve` to handle ca derivations
This commit is contained in:
parent
48e35585a6
commit
c15e121e32
|
@ -22,6 +22,7 @@ our @EXPORT = qw(
|
||||||
derivationFromPath
|
derivationFromPath
|
||||||
addTempRoot
|
addTempRoot
|
||||||
getBinDir getStoreDir
|
getBinDir getStoreDir
|
||||||
|
queryRawRealisation
|
||||||
);
|
);
|
||||||
|
|
||||||
our $VERSION = '0.15';
|
our $VERSION = '0.15';
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "crypto.hh"
|
#include "crypto.hh"
|
||||||
|
|
||||||
#include <sodium.h>
|
#include <sodium.h>
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
@ -120,6 +121,18 @@ SV * queryPathInfo(char * path, int base32)
|
||||||
croak("%s", e.what());
|
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)
|
SV * queryPathFromHashPart(char * hashPart)
|
||||||
PPCODE:
|
PPCODE:
|
||||||
|
|
Loading…
Reference in a new issue