#!/usr/bin/python3

import ctypes
from ctypes.util import find_library
import sys
import os

SYS_renameat2       = 316
AT_FDCWD            = -100
RENAME_EXCHANGE     = 2

src = sys.argv[1]
dst = sys.argv[2]

print("Swap {!r} <=> {!r}".format(src, dst), file=sys.stderr)

libc = ctypes.CDLL(find_library("c"), use_errno=True)
ret = libc.syscall(SYS_renameat2,
    AT_FDCWD, os.fsencode(src), AT_FDCWD, os.fsencode(dst), RENAME_EXCHANGE)
if ret != 0:
    raise Exception("renameat2 failed: {}".format(ctypes.get_errno()))
