1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
Version 0
---------
Following sections explain internals of metastore file (.metadata).
### Data types
CSTRING = NUL-terminated binary string
BSTRING(N) = binary string of length N
INT(N) = N byte integer in big endian byte order
### File layout
HEADER
N * ENTRY
### HEADER format
BSTRING(10) - Magic header - "MeTaSt00r3"
BSTRING(8) - Version - "\0\0\0\0\0\0\0\0" (currently)
### ENTRY format
CSTRING - Path (absolute or relative)
CSTRING - Owner (owner name, not uid)
CSTRING - Group (group name, not gid)
INT(8) - Mtime (seconds)
INT(8) - Mtime (nanoseconds)
INT(2) - Mode (st_mode from struct stat st_mode AND 0177777,
i.e. unix permissions and type of file)
INT(4) - num_xattrs
FOR (i = 0; i < num_xattrs; i++) {
CSTRING - xattr name
INT(4) - xattrlen
BSTRING(xattrlen) - xattr value
}
|