#!/usr/bin/env python3

import os
import sys

from posix_parity import fail
from posix_parity import find_fusermount
from posix_parity import find_mergerfs
from posix_parity import mergerfs_mount


def main():
    if os.geteuid() != 0:
        return 0
    if find_mergerfs() is None:
        return 0
    if find_fusermount() is None:
        return 0

    try:
        with mergerfs_mount() as (mount, _):
            with open(os.path.join(mount, "lifecycle-file"), "wb") as fp:
                fp.write(b"ok")
            if not os.path.exists(os.path.join(mount, "lifecycle-file")):
                return fail("mount lifecycle: expected created file to exist")

            return 0
    except RuntimeError as exc:
        print(str(exc), end="")
        return 77


if __name__ == "__main__":
    raise SystemExit(main())