#!/usr/bin/env python
from __future__ import absolute_import

import os
import subprocess
import sys


def main():
    root = os.path.dirname(os.path.abspath(__file__))
    candidates = [
        os.environ.get('TRASH_LIST_BINARY'),
        os.path.join(root, 'target', 'release', 'trash-list'),
        os.path.join(root, 'target', 'debug', 'trash-list'),
        os.path.join(root, 'trash-list-rs', 'target', 'release', 'trash-list'),
        os.path.join(root, 'trash-list-rs', 'target', 'debug', 'trash-list'),
    ]

    for candidate in candidates:
        if candidate and os.path.isfile(candidate) and os.access(candidate, os.X_OK):
            env = os.environ.copy()
            env['TRASH_LIST_PYTHON_EXECUTABLE'] = sys.executable
            sys.exit(subprocess.call([candidate] + sys.argv[1:], env=env))

    # Fallback to existing Python implementation when Rust binary is not built.
    from trashcli.list.main import main as py_main
    sys.exit(py_main())


if __name__ == '__main__':
    main()
