Made shell prettier, removed days from uptime, added cpu and gpu info
This commit is contained in:
parent
4ed8808e57
commit
623ff235f0
|
@ -12,9 +12,9 @@
|
|||
#+ATTR_HTML: :alt fetchy Screenshot :title fetchy Screenshot :align left
|
||||
[[https://gitlab.com/vojjvoda/fetchy/-/raw/master/screenshot.png]]
|
||||
|
||||
fetchy is a minimal command line system information tool written in C
|
||||
fetchy is a minimal command line system information tool written in C.
|
||||
|
||||
It displays the os, kernel, uptime, number of installed packages and shell
|
||||
It displays the os, kernel, uptime, number of installed packages, shell, CPU and GPU info.
|
||||
|
||||
* Install
|
||||
|
||||
|
|
69
fetchy.c
69
fetchy.c
|
@ -1,71 +1,24 @@
|
|||
#include <stdio.h>
|
||||
int day, hour, min, sec, pacman;
|
||||
char os[50], kernel[50], shell[25];
|
||||
#include "info.h"
|
||||
|
||||
void getDistro() {
|
||||
FILE *distroName = popen("cat /etc/*-release | grep 'PRETTY_NAME=' | cut -d '\"' -f2", "r");
|
||||
|
||||
fscanf(distroName, "%[^\n]%s", &os);
|
||||
fclose(distroName);
|
||||
}
|
||||
void main(){
|
||||
|
||||
void getKernel() {
|
||||
FILE *pathKernel = popen("uname -r", "r");
|
||||
|
||||
fscanf(pathKernel, "%[^\n]%s", &kernel);
|
||||
fclose(pathKernel);
|
||||
}
|
||||
|
||||
void getUptime() {
|
||||
FILE *pathUptime = fopen("/proc/uptime", "r");
|
||||
|
||||
fscanf(pathUptime, "%d", &sec);
|
||||
fclose(pathUptime);
|
||||
|
||||
day = (sec/60/60/24);
|
||||
hour = (sec/60/60%24);
|
||||
min = (sec/60%60);
|
||||
}
|
||||
|
||||
void getPackages() {
|
||||
FILE *pacpackages = popen("pacman -Q | wc -l", "r");
|
||||
|
||||
fscanf(pacpackages, "%d", &pacman);
|
||||
fclose(pacpackages);
|
||||
}
|
||||
|
||||
void getShell() {
|
||||
FILE *shellpath = popen("echo $SHELL", "r");
|
||||
|
||||
fscanf(shellpath, "%s", &shell);
|
||||
fclose(shellpath);
|
||||
}
|
||||
|
||||
void init() {
|
||||
getDistro();
|
||||
getKernel();
|
||||
getUptime();
|
||||
getPackages();
|
||||
getShell();
|
||||
}
|
||||
|
||||
int main() {
|
||||
init();
|
||||
|
||||
|
||||
printf("\n");
|
||||
printf("\x1b[1m . \x1b\n");
|
||||
printf("\x1b[1m / \\ \x1b\n");
|
||||
printf("\x1b[1m / \\ \x1b[36mOS\x1b[0m: %s\n", os);
|
||||
printf("\x1b[1m /^. \\ \x1b[36mKERNEL\x1b[0m: %s\n", kernel);
|
||||
printf("\x1b[1m / .-. \\ \x1b[36mUPTIME\x1b[0m: %dd, %dh, %dm\n", day, hour, min);
|
||||
printf("\x1b[1m / ( ) _\\ \x1b[36mPACKAGES\x1b[0m: %d (pacman)\n", pacman);
|
||||
printf("\x1b[1m / _.~ ~._^\\ \x1b[36mSHELL\x1b[0m: %s\n", shell);
|
||||
printf("\x1b[1m /.^ ^.\\ \x1b\n");
|
||||
printf("\n");
|
||||
printf("\x1b[1m . \x1b[36mOS\x1b[0m: Arch Linux\n");
|
||||
printf("\x1b[1m / \\ \x1b[36mKERNEL\x1b[0m: %s\n", kernel);
|
||||
printf("\x1b[1m / \\ \x1b[36mUPTIME\x1b[0m: %dh, %dm\n", hrs, min);
|
||||
printf("\x1b[1m /^. \\ \x1b[36mPACKAGES\x1b[0m: %d\n", pkgs);
|
||||
printf("\x1b[1m / .-. \\ \x1b[36mSHELL\x1b[0m: %s\n", shell);
|
||||
printf("\x1b[1m / ( ) _\\ \x1b[36mCPU\x1b[0m: %s\n", cpu);
|
||||
printf("\x1b[1m / _.~ ~._^\\ \x1b[36mGPU\x1b[0m: %s\n", gpu);
|
||||
printf("\x1b[1m /.^ ^.\\ \x1b\n");
|
||||
printf("\n\n");
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
65
info.h
Normal file
65
info.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
int hrs, min,
|
||||
sec, pkgs;
|
||||
|
||||
char kernel[50], shell[25],
|
||||
cpu[70], gpu[70];
|
||||
|
||||
|
||||
|
||||
|
||||
void getCPU(){
|
||||
FILE *cpuName = popen("grep -m 1 name /proc/cpuinfo | awk -F':' '{print $2}' | cut -c 2- ", "r");
|
||||
|
||||
fscanf(cpuName, "%[^\n]%s", &cpu);
|
||||
fclose(cpuName);
|
||||
}
|
||||
|
||||
|
||||
void getGPU(){
|
||||
FILE *gpuName = popen("lspci -v | rg VGA -m 1 | awk -F'[' '{ print $2 }' | awk -F']' '{ print $1 }' ", "r");
|
||||
|
||||
fscanf(gpuName, "%[^\n]%s", &gpu);
|
||||
fclose(gpuName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void getKernel(){
|
||||
FILE *pathKernel = popen("uname -r", "r");
|
||||
|
||||
fscanf(pathKernel, "%[^\n]%s", &kernel);
|
||||
fclose(pathKernel);
|
||||
}
|
||||
|
||||
void getUptime(){
|
||||
FILE *pathUptime = fopen("/proc/uptime", "r");
|
||||
|
||||
fscanf(pathUptime, "%d", &sec);
|
||||
fclose(pathUptime);
|
||||
|
||||
hrs = (sec/60/60%24);
|
||||
min = (sec/60%60);
|
||||
}
|
||||
|
||||
void getPackages(){
|
||||
FILE *pacpackages = popen("pacman -Q | wc -l", "r");
|
||||
|
||||
fscanf(pacpackages, "%d", &pkgs);
|
||||
fclose(pacpackages);
|
||||
}
|
||||
|
||||
void getShell(){
|
||||
FILE *shellpath = popen("echo $SHELL | awk -F'/' '{ print $NF }'", "r");
|
||||
|
||||
fscanf(shellpath, "%s", &shell);
|
||||
fclose(shellpath);
|
||||
}
|
||||
|
||||
void init(){
|
||||
getGPU();
|
||||
getCPU();
|
||||
getKernel();
|
||||
getUptime();
|
||||
getPackages();
|
||||
getShell();
|
||||
}
|
BIN
screenshot.png
BIN
screenshot.png
Binary file not shown.
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 78 KiB |
Loading…
Reference in a new issue