diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-09-23 12:35:42 -0600 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-09-23 12:38:38 -0600 |
commit | fbd945a03f2d706bb4d62aab6a607c1694d6d77a (patch) | |
tree | a3ab6ae733c3dbb37156b33bdb09aaac521c6d46 /9p/linux-errno.h.gen | |
parent | c3d212e15ce147f0b0ceaac7a50f9a44831aacb9 (diff) |
wip 9p reorg
Diffstat (limited to '9p/linux-errno.h.gen')
-rwxr-xr-x | 9p/linux-errno.h.gen | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/9p/linux-errno.h.gen b/9p/linux-errno.h.gen new file mode 100755 index 0000000..749cd8e --- /dev/null +++ b/9p/linux-errno.h.gen @@ -0,0 +1,33 @@ +#!/usr/bin/env python + + +def print_errnos(txtlists: list[str]) -> None: + print( + f"/* Generated by `./9p/linux-errno.h.gen {' '.join(txtlists)}`. DO NOT EDIT! */" + ) + errnos: dict[str, int] = {} + for txtlist in sys.argv[1:]: + with open(txtlist, "r") as fh: + for line in fh: + if line.startswith("#"): + print(f"/* {line[1:].strip()} */") + continue + _num, name = line.split(maxsplit=1) + num = int(_num) + name = name.strip() + errnos[name] = int(num) + namelen = max(len(name) for name in errnos.keys()) + print() + print("#ifndef _9P_LINUX_ERRNO_H_") + print("#define _9P_LINUX_ERRNO_H_") + print() + for name in errnos: + print(f"#define LINUX_{name.ljust(namelen)} {errnos[name]}") + print() + print("#endif /* _9P_LINUX_ERRNO_H_ */") + + +if __name__ == "__main__": + import sys + + print_errnos(sys.argv[1:]) |