feat(tree): add bindings and api

This commit is contained in:
Aleksey Kulikov 2021-09-02 11:58:14 +03:00
parent 6bd04bb09d
commit 84ee4be945
22 changed files with 316 additions and 84 deletions

View file

@ -164,46 +164,12 @@ class IndexEntry {
/// Returns id of the index entry as sha-1 hex.
String get sha => _oidToHex(_indexEntryPointer.ref.id);
GitFilemode get mode {
switch (_indexEntryPointer.ref.mode) {
case 0:
return GitFilemode.undreadable;
case 16384:
return GitFilemode.tree;
case 33188:
return GitFilemode.blob;
case 33261:
return GitFilemode.blobExecutable;
case 40960:
return GitFilemode.link;
case 57344:
return GitFilemode.commit;
default:
return GitFilemode.undreadable;
}
}
/// Returns the UNIX file attributes of a index entry.
GitFilemode get mode => intToGitFilemode(_indexEntryPointer.ref.mode);
/// Sets the UNIX file attributes of a index entry.
set mode(GitFilemode mode) {
switch (mode) {
case GitFilemode.undreadable:
_indexEntryPointer.ref.mode = 0;
break;
case GitFilemode.tree:
_indexEntryPointer.ref.mode = 16384;
break;
case GitFilemode.blob:
_indexEntryPointer.ref.mode = 33188;
break;
case GitFilemode.blobExecutable:
_indexEntryPointer.ref.mode = 33261;
break;
case GitFilemode.link:
_indexEntryPointer.ref.mode = 40960;
break;
case GitFilemode.commit:
_indexEntryPointer.ref.mode = 57344;
break;
}
_indexEntryPointer.ref.mode = gitFilemodeToInt(mode);
}
String _oidToHex(git_oid oid) {