Faster check program

This commit is contained in:
Aoran Zeng 2025-07-11 17:30:36 +08:00
parent b6eaa9721c
commit 291fd3cfc9
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98
2 changed files with 48 additions and 17 deletions

View File

@ -295,7 +295,7 @@ is_url (const char *str)
/**
*
*
* @param check_cmd `prog_name` `prog_name`
* @param check_cmd @param:prog_name @param:prog_name
* 使 python Windows上
* Microsoft Store
*
@ -332,55 +332,85 @@ query_program_exist (char *check_cmd, char *prog_name, int mode)
/**
* @brief '' chsrc_check_program()
*
* 使 "调用 程序名 --version" ( cmd_to_check_program2())
*
*
* 1. ()
* 2. 使 --version mvn
* 3. --version ()
*
* Windows Unix where
*/
static char *
cmd_to_check_program (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin ("where ", prog_name));
return quiet_cmd;
}
XY_Dreprecate_This("Use cmd_to_check_program() instead")
static char *
cmd_to_check_program2 (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin (prog_name, " --version"));
return quiet_cmd;
}
/**
* @brief
*
* @note
* 1. Recipe 使 program
* 2. ****
* 1. recipe 使 program
* 2. **
*
*/
bool
chsrc_check_program (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin (prog_name, " --version"));
return query_program_exist (quiet_cmd, prog_name, Noisy_When_Exist|Noisy_When_NonExist);
return query_program_exist (cmd_to_check_program(prog_name), prog_name, Noisy_When_Exist|Noisy_When_NonExist);
}
/**
* @brief
*
* @note
* 1.
* 2. ****
* 3. --version
*
* 2. **
*/
bool
chsrc_check_program_quietly (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin (prog_name, " --version"));
return query_program_exist (quiet_cmd, prog_name, Quiet_When_Exist|Quiet_When_NonExist);
return query_program_exist (cmd_to_check_program(prog_name), prog_name, Quiet_When_Exist|Quiet_When_NonExist);
}
/**
* @note
* @brief
*
* @note
*
*/
bool
chsrc_check_program_quietly_when_exist (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin (prog_name, " --version"));
return query_program_exist (quiet_cmd, prog_name, Quiet_When_Exist|Noisy_When_NonExist);
return query_program_exist (cmd_to_check_program(prog_name), prog_name, Quiet_When_Exist|Noisy_When_NonExist);
}
/**
* @brief
*
* @note
* 1. 退
* 2.
* 2.
*
*/
void
chsrc_ensure_program (char *prog_name)
{
char *quiet_cmd = xy_str_to_quietcmd (xy_2strjoin (prog_name, " --version"));
bool exist = query_program_exist (quiet_cmd, prog_name, Quiet_When_Exist|Noisy_When_NonExist);
bool exist = query_program_exist (cmd_to_check_program(prog_name), prog_name, Quiet_When_Exist|Noisy_When_NonExist);
if (exist)
{
// OK, nothing should be done

View File

@ -70,7 +70,8 @@ pl_python_get_py_program_name (char **prog_name)
if (py_exist) *prog_name = "python3";
else
{
/* 不要调用 python 自己,而是使用 python --version避免Windows弹出Microsoft Store */
/* 不要调用 python 自己,而是使用 python --version或者其他方式
python 使Windows弹出Microsoft Store */
py_exist = chsrc_check_program ("python");
if (py_exist) *prog_name = "python";