* Add some more functions to the Perl bindings.
This commit is contained in:
parent
49f59dceca
commit
92d6a5ed73
2 changed files with 48 additions and 1 deletions
|
@ -14,7 +14,8 @@ our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
|
||||||
our @EXPORT = qw(
|
our @EXPORT = qw(
|
||||||
isValidPath queryReferences queryPathInfo queryDeriver queryPathHash
|
isValidPath queryReferences queryPathInfo queryDeriver queryPathHash
|
||||||
topoSortPaths computeFSClosure followLinksToStorePath exportPaths
|
topoSortPaths computeFSClosure followLinksToStorePath exportPaths
|
||||||
hashPath
|
hashPath hashFile hashString
|
||||||
|
addToStore makeFixedOutputPath
|
||||||
);
|
);
|
||||||
|
|
||||||
our $VERSION = '0.15';
|
our $VERSION = '0.15';
|
||||||
|
|
|
@ -170,3 +170,49 @@ SV * hashPath(char * algo, int base32, char * path)
|
||||||
} catch (Error & e) {
|
} catch (Error & e) {
|
||||||
croak(e.what());
|
croak(e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SV * hashFile(char * algo, int base32, char * path)
|
||||||
|
PPCODE:
|
||||||
|
try {
|
||||||
|
Hash h = hashFile(parseHashType(algo), path);
|
||||||
|
string s = base32 ? printHash32(h) : printHash(h);
|
||||||
|
XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
|
||||||
|
} catch (Error & e) {
|
||||||
|
croak(e.what());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SV * hashString(char * algo, int base32, char * s)
|
||||||
|
PPCODE:
|
||||||
|
try {
|
||||||
|
Hash h = hashString(parseHashType(algo), s);
|
||||||
|
string s = base32 ? printHash32(h) : printHash(h);
|
||||||
|
XPUSHs(sv_2mortal(newSVpv(s.c_str(), 0)));
|
||||||
|
} catch (Error & e) {
|
||||||
|
croak(e.what());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SV * addToStore(char * srcPath, int recursive, char * algo)
|
||||||
|
PPCODE:
|
||||||
|
try {
|
||||||
|
doInit();
|
||||||
|
Path path = store->addToStore(srcPath, recursive, parseHashType(algo));
|
||||||
|
XPUSHs(sv_2mortal(newSVpv(path.c_str(), 0)));
|
||||||
|
} catch (Error & e) {
|
||||||
|
croak(e.what());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SV * makeFixedOutputPath(int recursive, char * algo, char * hash, char * name)
|
||||||
|
PPCODE:
|
||||||
|
try {
|
||||||
|
doInit();
|
||||||
|
HashType ht = parseHashType(algo);
|
||||||
|
Path path = makeFixedOutputPath(recursive, ht,
|
||||||
|
parseHash16or32(ht, hash), name);
|
||||||
|
XPUSHs(sv_2mortal(newSVpv(path.c_str(), 0)));
|
||||||
|
} catch (Error & e) {
|
||||||
|
croak(e.what());
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue