diff --git a/cups-driver-manager/driver_manager.py b/cups-driver-manager/driver_manager.py index 44d99c3..a81dcde 100644 --- a/cups-driver-manager/driver_manager.py +++ b/cups-driver-manager/driver_manager.py @@ -331,10 +331,25 @@ def install_rpm(filepath): def install_script(filepath): """执行安装脚本""" results = [] + filename = os.path.basename(filepath).lower() os.chmod(filepath, 0o755) - result = run_command(filepath, shell=True) - results.append(('执行安装脚本', result)) + + # HP 插件需要特殊处理(非交互式安装) + if 'hplip' in filename and 'plugin' in filename: + # 方法1:尝试使用 hp-plugin 命令安装 + hp_plugin_check = run_command(['which', 'hp-plugin']) + if hp_plugin_check['success']: + result = run_command(f'hp-plugin -i -p {filepath}', shell=True) + results.append(('使用 hp-plugin 安装 HP 插件', result)) + else: + # 方法2:使用 yes 命令自动确认交互式提示 + result = run_command(f'yes | {filepath}', shell=True) + results.append(('执行 HP 插件安装脚本', result)) + else: + # 普通脚本直接执行 + result = run_command(filepath, shell=True) + results.append(('执行安装脚本', result)) return results