mirror of
https://github.com/troglobit/finit.git
synced 2026-10-30 12:50:34 +00:00
helpers.c: New function, printv()
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
1 parent
cd947a69a8
commit
cda5938215
3 files changed
+23
-15
No files matched your search
+4
-5
@@ -153,7 +153,6 @@ int run_interactive(char *cmd, char *fmt, ...)
|
|||||||
{
|
{
|
||||||
int status, oldout = 1, olderr = 2;
|
int status, oldout = 1, olderr = 2;
|
||||||
char line[LINE_SIZE];
|
char line[LINE_SIZE];
|
||||||
va_list ap;
|
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
if (!cmd) {
|
if (!cmd) {
|
||||||
@@ -162,11 +161,11 @@ int run_interactive(char *cmd, char *fmt, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (fmt) {
|
if (fmt) {
|
||||||
va_start(ap, fmt);
|
va_list ap;
|
||||||
vsnprintf(line, sizeof(line), fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
print_desc("", line);
|
va_start(ap, fmt);
|
||||||
|
printv(fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Redirect output from cmd to a tempfile */
|
/* Redirect output from cmd to a tempfile */
|
||||||
|
|||||||
+18
-10
@@ -77,31 +77,39 @@ static int print_timestamp(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void print(int action, const char *fmt, ...)
|
void printv(const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
char buf[80];
|
char buf[80];
|
||||||
size_t len;
|
size_t len;
|
||||||
|
const char dots[] = " .....................................................................";
|
||||||
|
|
||||||
|
if (!fmt || log_is_silent())
|
||||||
|
return;
|
||||||
|
|
||||||
|
len = vsnprintf(buf, sizeof(buf), fmt, ap);
|
||||||
|
delline();
|
||||||
|
print_timestamp();
|
||||||
|
|
||||||
|
write(STDERR_FILENO, "\r", 1);
|
||||||
|
write(STDERR_FILENO, buf, len);
|
||||||
|
write(STDERR_FILENO, dots, 60 - len); /* pad with dots. */
|
||||||
|
}
|
||||||
|
|
||||||
|
void print(int action, const char *fmt, ...)
|
||||||
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
const char success[] = " \e[1m[ OK ]\e[0m\n";
|
const char success[] = " \e[1m[ OK ]\e[0m\n";
|
||||||
const char failure[] = " \e[7m[FAIL]\e[0m\n";
|
const char failure[] = " \e[7m[FAIL]\e[0m\n";
|
||||||
const char warning[] = " \e[7m[WARN]\e[0m\n";
|
const char warning[] = " \e[7m[WARN]\e[0m\n";
|
||||||
const char pending[] = " \e[1m[ \\/ ]\e[0m\n";
|
const char pending[] = " \e[1m[ \\/ ]\e[0m\n";
|
||||||
const char dots[] = " .....................................................................";
|
|
||||||
|
|
||||||
if (log_is_silent())
|
if (log_is_silent())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (fmt) {
|
if (fmt) {
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
len = vsnprintf(buf, sizeof(buf), fmt, ap);
|
printv(fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
delline();
|
|
||||||
print_timestamp();
|
|
||||||
|
|
||||||
write(STDERR_FILENO, "\r", 1);
|
|
||||||
write(STDERR_FILENO, buf, len);
|
|
||||||
write(STDERR_FILENO, dots, 60 - len); /* pad with dots. */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ char *strip_line (char *line);
|
|||||||
int pid_alive (pid_t pid);
|
int pid_alive (pid_t pid);
|
||||||
char *pid_get_name (pid_t pid, char *name, size_t len);
|
char *pid_get_name (pid_t pid, char *name, size_t len);
|
||||||
|
|
||||||
|
void printv (const char *fmt, va_list ap);
|
||||||
void print (int action, const char *fmt, ...);
|
void print (int action, const char *fmt, ...);
|
||||||
void print_desc (char *action, char *desc);
|
void print_desc (char *action, char *desc);
|
||||||
int print_result (int fail);
|
int print_result (int fail);
|
||||||
|
|||||||
Reference in new issue
Block a user