common fstab and libc funcs

This commit is contained in:
Maxim Devaev
2022-11-07 03:23:06 +03:00
parent 648316931a
commit 53f8b052de
6 changed files with 64 additions and 56 deletions

View File

@@ -22,12 +22,8 @@
import sys
import os
import ctypes
import ctypes.util
from ctypes import c_int
from ctypes import c_uint
from ctypes import c_char_p
from ... import libc
# =====
@@ -35,14 +31,6 @@ def main() -> None:
if len(sys.argv) != 3:
raise SystemExit(f"Usage: {sys.argv[0]} <file1> <file2>")
path = ctypes.util.find_library("c")
if not path:
raise SystemExit("Where is libc?")
assert path
libc = ctypes.CDLL(path)
libc.renameat2.restype = c_int
libc.renameat2.argtypes = [c_int, c_char_p, c_int, c_char_p, c_uint]
result = libc.renameat2(
-100, # AT_FDCWD
os.fsencode(sys.argv[1]),
@@ -52,4 +40,4 @@ def main() -> None:
)
if result != 0:
raise SystemExit(f"{sys.argv[0]}: {os.strerror(ctypes.get_errno())}")
raise SystemExit(f"{sys.argv[0]}: {os.strerror(libc.get_errno())}")