diff --git a/src/staging.c b/src/staging.c index df7ebad2..09a4f7d1 100644 --- a/src/staging.c +++ b/src/staging.c @@ -40,16 +40,13 @@ static int create_staging_renamedir(char *rename_tmpdir) { int ret; - char *rmcommand = NULL; - string_or_die(&rmcommand, "rm -fr %s", rename_tmpdir); - if (!system(rmcommand)) { + if (rm_rf(rename_tmpdir) != 0) { /* Not fatal but pretty scary, likely to really fail at the * next command too. Pass for now as printing may just cause * confusion */ ; } - free_string(&rmcommand); ret = mkdir(rename_tmpdir, S_IRWXU); if (ret == -1 && errno != EEXIST) { diff --git a/src/sys.c b/src/sys.c index 74b00167..5508b2fd 100644 --- a/src/sys.c +++ b/src/sys.c @@ -152,3 +152,8 @@ int mkdir_p(const char *dir) { return run_command_quiet("/bin/mkdir", "-p", dir, NULL); } + +int rm_rf(const char *file) +{ + return run_command_quiet("/bin/rm", "-rf", file, NULL); +} diff --git a/src/sys.h b/src/sys.h index cdea3fd9..bea67959 100644 --- a/src/sys.h +++ b/src/sys.h @@ -40,6 +40,8 @@ int copy(const char *src, const char *dst); int mkdir_p(const char *dir); +int rm_rf(const char *file); + #ifdef __cplusplus } #endif