#!/usr/bin/env python3
"""
使用示例
"""

import sys
import os
sys.path.append('/app')

from binary_runner import BinaryRunner

def main():
    print("=== Linux二进制文件执行示例 ===\n")
    
    # 示例1: 执行简单的Linux命令
    print("1. 执行ls命令:")
    runner = BinaryRunner("/bin/ls")
    returncode, stdout, stderr = runner.execute_simple(["-la", "/app"])
    print(f"返回码: {returncode}")
    print(f"输出:\n{stdout}")
    print("-" * 50)
    
    # 示例2: 执行带参数的复杂命令
    print("2. 执行find命令:")
    find_runner = BinaryRunner("/usr/bin/find")
    returncode, stdout, stderr = find_runner.execute_simple(["/app", "-name", "*.py", "-type", "f"])
    print(f"找到的Python文件:\n{stdout}")
    print("-" * 50)
    
    # 示例3: 获取二进制文件信息
    print("3. 获取二进制文件信息:")
    info = runner.get_binary_info()
    for key, value in info.items():
        if isinstance(value, list):
            print(f"  {key}:")
            for item in value[:3]:  # 只显示前3个依赖
                print(f"    - {item}")
            if len(value) > 3:
                print(f"    ... 还有 {len(value) - 3} 个")
        else:
            print(f"  {key}: {value}")
    print("-" * 50)
    
    # 示例4: 在PATH中查找二进制文件
    print("4. 在PATH中查找二进制文件:")
    python_path = BinaryRunner.find_binary_in_path("python3")
    if python_path:
        print(f"找到Python3: {python_path}")
    else:
        print("未找到Python3")
    print("-" * 50)
    
    # 示例5: 交互式执行
    print("5. 交互式执行:")
    echo_runner = BinaryRunner("/bin/echo")
    process = echo_runner.execute_interactive(["Hello from interactive execution!"])
    stdout, stderr = process.communicate()
    print(f"输出: {stdout.decode() if isinstance(stdout, bytes) else stdout}")
    print("-" * 50)
    
    # 示例6: 使用自定义环境变量
    print("6. 使用自定义环境变量:")
    env_runner = BinaryRunner("/usr/bin/printenv")
    returncode, stdout, stderr = env_runner.execute_with_env(
        env_vars={"MY_CUSTOM_VAR": "custom_value", "ANOTHER_VAR": "test123"}
    )
    print(f"环境变量输出中包含自定义变量:")
    for line in stdout.split('\n'):
        if 'MY_CUSTOM_VAR' in line or 'ANOTHER_VAR' in line:
            print(f"  {line}")
    
    print("\n=== 示例完成 ===")

if __name__ == "__main__":
    main()