Files
fastfetch/src/modules/title.c
T

56 lines
1.3 KiB
C
Raw Normal View History

2021-02-18 22:25:36 +01:00
#include "fastfetch.h"
2021-04-09 14:07:05 +02:00
#include <unistd.h>
#include <pthread.h>
2021-04-09 14:07:05 +02:00
const FFTitleResult* ffDetectTitle(FFinstance* instance)
2021-02-18 22:25:36 +01:00
{
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static bool init = false;
static FFTitleResult result;
pthread_mutex_lock(&mutex);
if(init)
{
pthread_mutex_unlock(&mutex);
return &result;
}
init = true;
ffStrbufInit(&result.userName);
ffStrbufAppendS(&result.userName, instance->state.passwd->pw_name);
ffStrbufInitA(&result.hostname, 256);
gethostname(result.hostname.chars, result.hostname.allocated);
ffStrbufRecalculateLength(&result.hostname);
pthread_mutex_unlock(&mutex);
return &result;
}
2021-02-18 22:25:36 +01:00
static inline void printTitlePart(FFinstance* instance, const FFstrbuf* content)
{
2022-06-06 14:02:21 +02:00
if(!instance->config.pipe)
{
fputs(FASTFETCH_TEXT_MODIFIER_BOLT, stdout);
ffPrintColor(&instance->config.mainColor);
}
ffStrbufWriteTo(content, stdout);
2022-06-06 14:02:21 +02:00
if(!instance->config.pipe)
fputs(FASTFETCH_TEXT_MODIFIER_RESET, stdout);
}
void ffPrintTitle(FFinstance* instance)
{
const FFTitleResult* result = ffDetectTitle(instance);
2021-02-18 22:25:36 +01:00
2022-06-08 10:59:33 +02:00
ffLogoPrintLine(instance);
2021-02-18 22:25:36 +01:00
printTitlePart(instance, &result->userName);
putchar('@');
printTitlePart(instance, &result->hostname);
putchar('\n');
2021-03-27 18:14:19 +01:00
}