mirror of
https://github.com/RubyMetric/chsrc
synced 2025-10-09 21:33:23 +08:00
Add parameters for running command
This commit is contained in:
@@ -18,7 +18,8 @@
|
||||
#define Exit_UserCause 1
|
||||
#define Exit_Unsupported 2
|
||||
#define Exit_MatinerIssue 3
|
||||
#define Exit_FatalError 4
|
||||
#define Exit_FatalBug 4
|
||||
#define Exit_FatalUnkownError 5
|
||||
|
||||
#define chsrc_log(str) xy_log(App_Name,str)
|
||||
#define chsrc_succ(str) xy_succ(App_Name,str)
|
||||
@@ -438,7 +439,7 @@ chsrc_confirm_source (SourceInfo *source)
|
||||
else if (source_has_empty_url (source))
|
||||
{
|
||||
chsrc_error ("该源URL不存在,请向开发团队提交bug");
|
||||
exit (Exit_FatalError);
|
||||
exit (Exit_FatalBug);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -573,14 +574,22 @@ not_root:
|
||||
}
|
||||
|
||||
|
||||
#define RunOpt_Default 0x0000
|
||||
#define RunOpt_No_Note_On_Sccess 0x0001 // 运行成功不提示用户,只有运行失败时才提示用户
|
||||
#define RunOpt_No_Last_New_Line 0x0010 // 不输出最后的空行
|
||||
#define RunOpt_Fatal_On_Error 0x0100 // 若命令运行失败,直接退出
|
||||
|
||||
static void
|
||||
chsrc_run (const char *cmd)
|
||||
chsrc_run (const char *cmd, int run_option)
|
||||
{
|
||||
xy_info_remarkably (App_Name, "运行", cmd);
|
||||
int status = system (cmd);
|
||||
if (0==status)
|
||||
{
|
||||
xy_succ_remarkably (App_Name, "运行", "命令执行成功");
|
||||
if (! (RunOpt_No_Note_On_Sccess & run_option))
|
||||
{
|
||||
xy_succ_remarkably (App_Name, "运行", "命令执行成功");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -588,8 +597,17 @@ chsrc_run (const char *cmd)
|
||||
sprintf (buf, "%d", status);
|
||||
char *str = xy_2strjoin ("命令执行失败,返回码 ", buf);
|
||||
xy_error_remarkably (App_Name, "运行", str);
|
||||
if (RunOpt_Fatal_On_Error)
|
||||
{
|
||||
chsrc_error ("关键错误,强制结束");
|
||||
exit (Exit_FatalUnkownError);
|
||||
}
|
||||
}
|
||||
|
||||
if (! (RunOpt_No_Last_New_Line & run_option))
|
||||
{
|
||||
puts ("");
|
||||
}
|
||||
puts ("");
|
||||
}
|
||||
|
||||
|
||||
@@ -606,7 +624,7 @@ chsrc_take_a_look_at_file (const char *path)
|
||||
{
|
||||
cmd = xy_2strjoin ("cat ", path);
|
||||
}
|
||||
chsrc_run (cmd);
|
||||
chsrc_run (cmd, RunOpt_No_Note_On_Sccess|RunOpt_No_Last_New_Line);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -624,7 +642,7 @@ chsrc_ensure_dir (const char *dir)
|
||||
}
|
||||
char *cmd = xy_2strjoin (mkdir_cmd, dir);
|
||||
cmd = xy_str_to_quietcmd (cmd);
|
||||
chsrc_run (cmd);
|
||||
chsrc_run (cmd, RunOpt_Default);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -643,7 +661,7 @@ chsrc_append_to_file (const char *str, const char *file)
|
||||
{
|
||||
cmd = xy_strjoin (4, "echo '", str, "' >> ", file);
|
||||
}
|
||||
chsrc_run (cmd);
|
||||
chsrc_run (cmd, RunOpt_Default);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -662,7 +680,7 @@ chsrc_overwrite_file (const char *str, const char *file)
|
||||
{
|
||||
cmd = xy_strjoin (4, "echo '", str, "' > ", file);
|
||||
}
|
||||
chsrc_run (cmd);
|
||||
chsrc_run (cmd, RunOpt_Default);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -685,7 +703,7 @@ chsrc_backup (const char *path)
|
||||
cmd = xy_strjoin (5, "cp ", path, " ", path, ".bak --backup='t'");
|
||||
}
|
||||
|
||||
chsrc_run (cmd);
|
||||
chsrc_run (cmd, RunOpt_Default);
|
||||
chsrc_note_remarkably (xy_strjoin (3, "备份文件名 ", path, ".bak"));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user