Skip to content

Commit f233847

Browse files
committed
Version: add new module
1 parent 970863e commit f233847

File tree

19 files changed

+174
-2
lines changed

19 files changed

+174
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Features:
1414
* Add `--key-width` for aligning the left edge of values, supported both for global `--key-width` and specific module `--module-key-width`
1515
* Add `--bar-char-elapsed`, `--bar-char-total`, `--bar-width` and `--bar-border` options
1616
* Add CMake option `ENABLE_SYSTEM_YYJSON`, which allow building fastfetch with system-provided yyjson (for package managers)
17+
* Add new module `Version`, which prints fastfetch version (like `fastfetch --version`)
1718

1819
Bugfixes:
1920
* Fix label detection. Use `--disk-key 'Disk ({2})'` to display it (Disk, Linux)

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ set(LIBFASTFETCH_SRC
279279
src/detection/packages/packages.c
280280
src/detection/terminalfont/terminalfont.c
281281
src/detection/terminalshell/terminalshell.c
282+
src/detection/version/version.c
282283
src/detection/vulkan/vulkan.c
283284
src/logo/builtin.c
284285
src/logo/image/im6.c
@@ -334,6 +335,7 @@ set(LIBFASTFETCH_SRC
334335
src/modules/title/title.c
335336
src/modules/uptime/uptime.c
336337
src/modules/users/users.c
338+
src/modules/version/version.c
337339
src/modules/vulkan/vulkan.c
338340
src/modules/wallpaper/wallpaper.c
339341
src/modules/weather/weather.c

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ All categories not listed here should work without needing a specific implementa
9696

9797
##### Available Modules
9898
```
99-
Battery, Bios, Bluetooth, Board, Break, Brightness, Colors, Command, CPU, CPUUsage, Cursor, Custom, Date, DateTime, DE, Disk, Display, Font, Gamepad, GPU, Host, Icons, Kernel, LM, Locale, LocalIP, Media, Memory, Monitor, OpenCL, OpenGL, OS, Packages, Player, Power Adapter, Processes, PublicIP, Separator, Shell, Sound, Swap, Terminal, Terminal Font, Terminal Size, Theme, Time, Title, Uptime, Vulkan, Wallpaper, Weather, Wifi, WM, WMTheme
99+
Battery, Bios, Bluetooth, Board, Break, Brightness, Colors, Command, CPU, CPUUsage, Cursor, Custom, Date, DateTime, DE, Disk, Display, Font, Gamepad, GPU, Host, Icons, Kernel, LM, Locale, LocalIP, Media, Memory, Monitor, OpenCL, OpenGL, OS, Packages, Player, Power Adapter, Processes, PublicIP, Separator, Shell, Sound, Swap, Terminal, Terminal Font, Terminal Size, Theme, Time, Title, Uptime, Version, Vulkan, Wallpaper, Weather, Wifi, WM, WMTheme
100100
```
101101

102102
##### Builtin logos

doc/json_schema.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@
558558
"theme",
559559
"uptime",
560560
"users",
561+
"version",
561562
"vulkan",
562563
"wallpaper",
563564
"weather",
@@ -626,6 +627,7 @@
626627
"theme",
627628
"uptime",
628629
"users",
630+
"version",
629631
"vulkan",
630632
"wallpaper",
631633
"wm",

presets/all

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
--structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Display:Brightness:Monitor:LM:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Wallpaper:Terminal:TerminalFont:TerminalSize:CPU:CPUUsage:GPU:Memory:Swap:Disk:Battery:PowerAdapter:Player:Media:PublicIP:LocalIP:Wifi:DateTime:Locale:Vulkan:OpenGL:OpenCL:Users:Bluetooth:Sound:Gamepad:Weather:Break:Colors
1+
--structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Display:Brightness:Monitor:LM:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Wallpaper:Terminal:TerminalFont:TerminalSize:CPU:CPUUsage:GPU:Memory:Swap:Disk:Battery:PowerAdapter:Player:Media:PublicIP:LocalIP:Wifi:DateTime:Locale:Vulkan:OpenGL:OpenCL:Users:Bluetooth:Sound:Gamepad:Weather:Version:Break:Colors

presets/all.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"sound",
5252
"gamepad",
5353
"weather",
54+
"version",
5455
"break",
5556
"colors"
5657
]

src/common/init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ static void defaultConfig(void)
123123
ffInitTitleOptions(&instance.config.title);
124124
ffInitUptimeOptions(&instance.config.uptime);
125125
ffInitUsersOptions(&instance.config.users);
126+
ffInitVersionOptions(&instance.config.version);
126127
ffInitVulkanOptions(&instance.config.vulkan);
127128
ffInitWMOptions(&instance.config.wm);
128129
ffInitWMThemeOptions(&instance.config.wmTheme);
@@ -335,6 +336,7 @@ static void destroyConfig(void)
335336
ffDestroyTitleOptions(&instance.config.title);
336337
ffDestroyUptimeOptions(&instance.config.uptime);
337338
ffDestroyUsersOptions(&instance.config.users);
339+
ffDestroyVersionOptions(&instance.config.version);
338340
ffDestroyVulkanOptions(&instance.config.vulkan);
339341
ffDestroyWMOptions(&instance.config.wm);
340342
ffDestroyWMThemeOptions(&instance.config.wmTheme);

src/common/modules.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ static FFModuleBaseInfo* U[] = {
133133
};
134134

135135
static FFModuleBaseInfo* V[] = {
136+
(void*) &instance.config.version,
136137
(void*) &instance.config.vulkan,
137138
NULL,
138139
};

src/data/config_user.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@
376376
#--player-key Media Player
377377
#--media-key Media
378378
#--datetime-key Date Time
379+
#--version-key Version
379380
#--vulkan-key Vulkan
380381
#--opengl-key OpenGL
381382
#--opencl-key OpenCL
@@ -426,6 +427,7 @@
426427
#--player-format
427428
#--media-format
428429
#--datetime-format
430+
#--version-format
429431
#--vulkan-format
430432
#--opengl-format
431433
#--opencl-format
@@ -473,6 +475,7 @@
473475
#--player-key-color
474476
#--media-key-color
475477
#--datetime-key-color
478+
#--version-key-color
476479
#--vulkan-key-color
477480
#--opengl-key-color
478481
#--opencl-key-color

src/detection/version/version.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include "version.h"
2+
3+
#if defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) || defined(__amd64)
4+
#define FF_ARCHITECTURE "x86_64"
5+
#elif defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(__i586__) || defined(__i586) || defined(__i686__) || defined(__i686)
6+
#define FF_ARCHITECTURE "i386"
7+
#elif defined(__aarch64__)
8+
#define FF_ARCHITECTURE "aarch64"
9+
#elif defined(__arm__)
10+
#define FF_ARCHITECTURE "arm"
11+
#elif defined(__mips__)
12+
#define FF_ARCHITECTURE "mips"
13+
#elif defined(__powerpc__) || defined(__powerpc)
14+
#define FF_ARCHITECTURE "powerpc"
15+
#elif defined(__riscv__) || defined(__riscv)
16+
#define FF_ARCHITECTURE "riscv"
17+
#elif defined(__s390x__)
18+
#define FF_ARCHITECTURE "s390x"
19+
#else
20+
#define FF_ARCHITECTURE "unknown"
21+
#endif
22+
23+
void ffDetectVersion(FFVersionResult* version)
24+
{
25+
version->projectName = FASTFETCH_PROJECT_NAME;
26+
version->architecture = FF_ARCHITECTURE;
27+
version->version = FASTFETCH_PROJECT_VERSION;
28+
version->versionTweak = FASTFETCH_PROJECT_VERSION_TWEAK;
29+
version->cmakeBuiltType = FASTFETCH_PROJECT_CMAKE_BUILD_TYPE;
30+
#ifndef NDEBUG
31+
version->debugMode = true;
32+
#else
33+
version->debugMode = false;
34+
#endif
35+
}

0 commit comments

Comments
 (0)