]> git.proxmox.com Git - pxar.git/blob - examples/mk-format-hashes.rs
new hashes for the entire archive foramt
[pxar.git] / examples / mk-format-hashes.rs
1 use pxar::format::hash_filename;
2
3 const CONSTANTS: &[(&str, &str, &str)] = &[
4 ("", "PXAR_ENTRY", "__PROXMOX_FORMAT_ENTRY__"),
5 ("", "PXAR_FILENAME", "__PROXMOX_FORMAT_FILENAME__"),
6 ("", "PXAR_SYMLINK", "__PROXMOX_FORMAT_SYMLINK__"),
7 ("", "PXAR_DEVICE", "__PROXMOX_FORMAT_DEVICE__"),
8 ("", "PXAR_XATTR", "__PROXMOX_FORMAT_XATTR__"),
9 ("", "PXAR_ACL_USER", "__PROXMOX_FORMAT_ACL_USER__"),
10 ("", "PXAR_ACL_GROUP", "__PROXMOX_FORMAT_ACL_GROUP__"),
11 ("", "PXAR_ACL_GROUP_OBJ", "__PROXMOX_FORMAT_ACL_GROUP_OBJ__"),
12 ("", "PXAR_ACL_DEFAULT", "__PROXMOX_FORMAT_ACL_DEFAULT__"),
13 ("", "PXAR_ACL_DEFAULT_USER", "__PROXMOX_FORMAT_ACL_DEFAULT_USER__"),
14 ("", "PXAR_ACL_DEFAULT_GROUP", "__PROXMOX_FORMAT_ACL_DEFAULT_GROUP__"),
15 ("", "PXAR_FCAPS", "__PROXMOX_FORMAT_FCAPS__"),
16 ("", "PXAR_QUOTA_PROJID", "__PROXMOX_FORMAT_QUOTA_PROJID__"),
17
18 ("Marks item as hardlink", "PXAR_HARDLINK", "__PROXMOX_FORMAT_HARDLINK__"),
19 (
20 "Marks the beginnig of the payload (actual content) of regular files",
21 "PXAR_PAYLOAD",
22 "__PROXMOX_FORMAT_PXAR_PAYLOAD__",
23 ),
24 ("Marks item as entry of goodbye table", "PXAR_GOODBYE", "__PROXMOX_FORMAT_GOODBYE__"),
25 (
26 "The end marker used in the GOODBYE object",
27 "PXAR_GOODBYE_TAIL_MARKER",
28 "__PROXMOX_FORMAT_PXAR_GOODBYE_TAIL_MARKER__",
29 ),
30 ];
31
32 fn main() {
33 for constant in CONSTANTS {
34 if !constant.0.is_empty() {
35 println!("/// {}", constant.0);
36 }
37 println!(
38 "pub const {}: u64 = 0x{:016x};",
39 constant.1,
40 hash_filename(constant.2.as_bytes()),
41 )
42 }
43 }