起動時間で0日も可能
このコミットが含まれているのは:
コミット
7a392b2a63
30
main.c
30
main.c
|
@ -43,8 +43,6 @@ int main(int argc, char *argv[]) {
|
|||
const char *color = MAGENTA;
|
||||
const char *titlecolor = MAGENTA;
|
||||
size_t logosize = 11;
|
||||
#define COLOR "\e[1;30m"
|
||||
#define RESET "\e[0m"
|
||||
char *LOGO[] = {
|
||||
" ⢀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⣠⠾⠛⠶⣄⢀⣠⣤⠴⢦⡀⠀⠀⠀⠀",
|
||||
"⠀⠀⠀⢠⡿⠉⠉⠉⠛⠶⠶⠖⠒⠒⣾⠋⠀⢀⣀⣙⣯⡁⠀⠀⠀⣿⠀⠀⠀⠀",
|
||||
|
@ -83,8 +81,8 @@ size_t logosize = 11;
|
|||
ls = ne >= MIN_SIZE ? MIN_SIZE : ne;
|
||||
}
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_user_name() || display_user_host()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf(
|
||||
"%s%s%s@%s%s%s\n",
|
||||
titlecolor, display_user_name(), reset,
|
||||
|
@ -97,15 +95,15 @@ size_t logosize = 11;
|
|||
printf("------------------\n");
|
||||
lc++;
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_os()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sOS%s: %s\n", color, reset, display_os());
|
||||
lc++;
|
||||
}
|
||||
|
||||
#if defined(__linux__)
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_distro()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sDistro%s: %s\n", color, reset, display_distro());
|
||||
lc++;
|
||||
}
|
||||
|
@ -117,17 +115,23 @@ size_t logosize = 11;
|
|||
printf("\n");
|
||||
lc++;
|
||||
|
||||
if (display_days() || display_time()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%s%s%s%s", color, "Uptime", reset, ": ");
|
||||
display_days();
|
||||
printf(", ");
|
||||
display_time();
|
||||
if (display_days()) {
|
||||
printf("%s", display_days());
|
||||
if (display_time()) printf(" ");
|
||||
}
|
||||
if (display_time()) {
|
||||
printf("%s", display_time());
|
||||
}
|
||||
printf("\n");
|
||||
lc++;
|
||||
}
|
||||
|
||||
#if defined(__OpenBSD__)
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_recording_audio() || display_recording_video()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sRecording%s: ", color, reset);
|
||||
if (display_recording_audio()) {
|
||||
printf("audio = %s", display_recording_audio());
|
||||
|
@ -141,26 +145,26 @@ size_t logosize = 11;
|
|||
}
|
||||
#endif
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_packages()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sPackages%s: %s\n", color, reset, display_packages());
|
||||
lc++;
|
||||
}
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_resolution()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sResolution%s: %s\n", color, reset, display_resolution());
|
||||
lc++;
|
||||
}
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_cpu()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sCPU%s: %s\n", color, reset, display_cpu());
|
||||
lc++;
|
||||
}
|
||||
|
||||
printf("%s ", LOGO[lc]);
|
||||
if (display_gpu()) {
|
||||
printf("%s ", LOGO[lc]);
|
||||
printf("%sGPU%s: %s\n", color, reset, display_gpu());
|
||||
lc++;
|
||||
}
|
||||
|
|
38
src/uptime.c
38
src/uptime.c
|
@ -2,12 +2,40 @@
|
|||
#include "common.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
void display_days() {
|
||||
printf("%s", run_command_s("uptime | awk '{print $3}' && echo \" days\""));
|
||||
const char *display_days() {
|
||||
const char *days = run_command_s("uptime | awk '{for (i=1; i<=NF; i++) "
|
||||
"if ($i ~ /day/) print $(i-1), $i}'");
|
||||
|
||||
if (days == NULL || strlen(days) == 0) {
|
||||
return strndup("0 days,", 7);
|
||||
}
|
||||
|
||||
void display_time() {
|
||||
printf("%s", run_command_s("uptime | awk '{print $5}' | sed 's/,//' | "
|
||||
"sed 's/:/ hours, /' && echo \" mins\""));
|
||||
return days;
|
||||
}
|
||||
|
||||
const char *display_time() {
|
||||
const char *uptime = run_command_s("uptime");
|
||||
if (uptime == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *days = strstr(uptime, "day");
|
||||
int nodays = 0;
|
||||
if (days == NULL) {
|
||||
nodays = 1;
|
||||
days = strstr(uptime, "days");
|
||||
}
|
||||
|
||||
free((void *)uptime);
|
||||
|
||||
if (nodays) {
|
||||
return run_command_s("uptime | awk '{print $3}' | sed 's/,//' | "
|
||||
"sed 's/:/ hours, /' && echo \" mins\"");
|
||||
}
|
||||
|
||||
return run_command_s("uptime | awk '{print $5}' | sed 's/,//' | "
|
||||
"sed 's/:/ hours, /' && echo \" mins\"");
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef UPTIME_H
|
||||
#define UPTIME_H
|
||||
|
||||
void display_days();
|
||||
void display_time();
|
||||
const char *display_days();
|
||||
const char *display_time();
|
||||
|
||||
#endif
|
||||
|
|
読み込み中…
新しいイシューから参照