mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 02:42:09 +02:00
Network: drop module
This commit is contained in:
@@ -1,8 +1,5 @@
|
||||
# 1.11.2
|
||||
|
||||
Features:
|
||||
* Network module (#451)
|
||||
|
||||
Bugfixes:
|
||||
* Fix flatpak package count (#441)
|
||||
* Don't print white color blocks with `--pipe` (#450)
|
||||
|
||||
@@ -285,7 +285,6 @@ set(LIBFASTFETCH_SRC
|
||||
src/modules/locale.c
|
||||
src/modules/localip.c
|
||||
src/modules/memory.c
|
||||
src/modules/network.c
|
||||
src/modules/opencl.c
|
||||
src/modules/opengl.c
|
||||
src/modules/os.c
|
||||
@@ -347,7 +346,6 @@ if(LINUX)
|
||||
src/detection/gamepad/gamepad_linux.c
|
||||
src/detection/media/media_linux.c
|
||||
src/detection/memory/memory_linux.c
|
||||
src/detection/network/network_linux.c
|
||||
src/detection/opengl/opengl_linux.c
|
||||
src/detection/os/os_linux.c
|
||||
src/detection/packages/packages_linux.c
|
||||
@@ -388,7 +386,6 @@ elseif(ANDROID)
|
||||
src/detection/gamepad/gamepad_nosupport.c
|
||||
src/detection/media/media_nosupport.c
|
||||
src/detection/memory/memory_linux.c
|
||||
src/detection/network/network_linux.c
|
||||
src/detection/opengl/opengl_linux.c
|
||||
src/detection/os/os_android.c
|
||||
src/detection/packages/packages_linux.c
|
||||
@@ -435,7 +432,6 @@ elseif(BSD)
|
||||
src/detection/gamepad/gamepad_nosupport.c
|
||||
src/detection/media/media_linux.c
|
||||
src/detection/memory/memory_bsd.c
|
||||
src/detection/network/network_bsd.c
|
||||
src/detection/opengl/opengl_linux.c
|
||||
src/detection/os/os_linux.c
|
||||
src/detection/packages/packages_linux.c
|
||||
@@ -478,7 +474,6 @@ elseif(APPLE)
|
||||
src/detection/gamepad/gamepad_apple.c
|
||||
src/detection/media/media_apple.m
|
||||
src/detection/memory/memory_apple.c
|
||||
src/detection/network/network_apple.c
|
||||
src/detection/opengl/opengl_apple.c
|
||||
src/detection/os/os_apple.m
|
||||
src/detection/packages/packages_apple.c
|
||||
@@ -520,7 +515,6 @@ elseif(WIN32)
|
||||
src/detection/gamepad/gamepad_windows.c
|
||||
src/detection/media/media_nosupport.c
|
||||
src/detection/memory/memory_windows.c
|
||||
src/detection/network/network_windows.c
|
||||
src/detection/opengl/opengl_windows.c
|
||||
src/detection/os/os_windows.cpp
|
||||
src/detection/packages/packages_windows.c
|
||||
|
||||
@@ -89,7 +89,7 @@ All categories not listed here should work without needing a specific implementa
|
||||
|
||||
##### Available Modules
|
||||
```
|
||||
Battery, Bios, Bluetooth, Board, Break, Brightness, Colors, Command, CPU, CPUUsage, Cursor, Custom, Date, DateTime, DE, Disk, Display, Font, Gamepad, GPU, Host, Icons, Kernel, Locale, LocalIP, Media, Memory, Network, OpenCL, OpenGL, Packages, Player, Power Adapter, Processes, PublicIP, Separator, OS, Shell, Sound, Swap, Terminal, Terminal Font, Theme, Time, Title, Uptime, Vulkan, Wifi, WM, WMTheme
|
||||
Battery, Bios, Bluetooth, Board, Break, Brightness, Colors, Command, CPU, CPUUsage, Cursor, Custom, Date, DateTime, DE, Disk, Display, Font, Gamepad, GPU, Host, Icons, Kernel, Locale, LocalIP, Media, Memory, OpenCL, OpenGL, Packages, Player, Power Adapter, Processes, PublicIP, Separator, OS, Shell, Sound, Swap, Terminal, Terminal Font, Theme, Time, Title, Uptime, Vulkan, Wifi, WM, WMTheme
|
||||
```
|
||||
|
||||
##### Builtin logos
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
--structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Display:Brightness:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Terminal:TerminalFont:CPU:CPUUsage:GPU:Memory:Swap:Disk:Battery:PowerAdapter:Player:Media:PublicIP:LocalIP:Wifi:Network:DateTime:Locale:Vulkan:OpenGL:OpenCL:Users:Bluetooth:Sound:Gamepad:Weather:Break:Colors
|
||||
--structure Title:Separator:OS:Host:Bios:Board:Chassis:Kernel:Uptime:Processes:Packages:Shell:Display:Brightness:DE:WM:WMTheme:Theme:Icons:Font:Cursor:Terminal:TerminalFont: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
|
||||
|
||||
@@ -115,7 +115,6 @@ static void defaultConfig(FFinstance* instance)
|
||||
initModuleArg(&instance->config.bluetooth);
|
||||
initModuleArg(&instance->config.sound);
|
||||
initModuleArg(&instance->config.gamepad);
|
||||
initModuleArg(&instance->config.network);
|
||||
|
||||
ffStrbufInitA(&instance->config.libPCI, 0);
|
||||
ffStrbufInitA(&instance->config.libVulkan, 0);
|
||||
@@ -204,9 +203,6 @@ static void defaultConfig(FFinstance* instance)
|
||||
);
|
||||
ffListInit(&instance->config.commandKeys, sizeof(FFstrbuf));
|
||||
ffListInit(&instance->config.commandTexts, sizeof(FFstrbuf));
|
||||
|
||||
ffStrbufInit(&instance->config.networkType);
|
||||
instance->config.networkAll = false;
|
||||
}
|
||||
|
||||
void ffInitInstance(FFinstance* instance)
|
||||
@@ -387,7 +383,6 @@ static void destroyConfig(FFinstance* instance)
|
||||
destroyModuleArg(&instance->config.bluetooth);
|
||||
destroyModuleArg(&instance->config.sound);
|
||||
destroyModuleArg(&instance->config.gamepad);
|
||||
destroyModuleArg(&instance->config.network);
|
||||
|
||||
ffStrbufDestroy(&instance->config.libPCI);
|
||||
ffStrbufDestroy(&instance->config.libVulkan);
|
||||
@@ -431,8 +426,6 @@ static void destroyConfig(FFinstance* instance)
|
||||
FF_LIST_FOR_EACH(FFstrbuf, item, instance->config.commandTexts)
|
||||
ffStrbufDestroy(item);
|
||||
ffListDestroy(&instance->config.commandTexts);
|
||||
|
||||
ffStrbufDestroy(&instance->config.networkType);
|
||||
}
|
||||
|
||||
static void destroyState(FFinstance* instance)
|
||||
|
||||
@@ -176,18 +176,6 @@
|
||||
# Default is 0 (disabled).
|
||||
#--public-ip-timeout 0
|
||||
|
||||
# Network show all interfaces option
|
||||
# Sets if all interfaces (including down) should be printed
|
||||
# Must be either true or false
|
||||
# Default is false.
|
||||
#--network-all false
|
||||
|
||||
# Network show interface type option
|
||||
# Sets which type of interfaces should be printed
|
||||
# Must be a string
|
||||
# Default is empty.
|
||||
#--network-type
|
||||
|
||||
# Weather output format option:
|
||||
# Sets the weather format to be used. It must be URI encoded.
|
||||
# See: https://github.com/chubin/wttr.in#one-line-output
|
||||
|
||||
@@ -132,8 +132,6 @@ Module specific options:
|
||||
--localip-v6first <?value>: Set if ipv6 should be printed first. Default is false
|
||||
--public-ip-timeout: Time in milliseconds to wait for the public ip server to respond. Default is disabled (0)
|
||||
--public-ip-url: The URL of public IP detection server to be used.
|
||||
--network-all: Set if all interfaces (including down) should be printed. Default is false
|
||||
--network-type: Set which type of interfaces should be printed. Default is empty
|
||||
--weather-timeout: Time in milliseconds to wait for the weather server to respond. Default is disabled (0)
|
||||
--weather-output-format: The output weather format to be used. It must be URI encoded.
|
||||
--player-name: The name of the player to use
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef FF_INCLUDED_detection_network_network
|
||||
#define FF_INCLUDED_detection_network_network
|
||||
|
||||
#include "fastfetch.h"
|
||||
|
||||
typedef struct FFNetworkResult
|
||||
{
|
||||
FFstrbuf name;
|
||||
FFstrbuf type;
|
||||
FFstrbuf address;
|
||||
uint32_t mtu;
|
||||
bool up;
|
||||
} FFNetworkResult;
|
||||
|
||||
const char* ffDetectNetwork(FFinstance* instance, FFlist* result);
|
||||
|
||||
#endif
|
||||
@@ -1,43 +0,0 @@
|
||||
#include "detection/network/network.h"
|
||||
#include "util/apple/cf_helpers.h"
|
||||
|
||||
#include <SystemConfiguration/SystemConfiguration.h>
|
||||
|
||||
const char* ffDetectNetwork(FFinstance* instance, FFlist* result)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY sbType;
|
||||
ffStrbufInit(&sbType);
|
||||
|
||||
CFArrayRef FF_CFTYPE_AUTO_RELEASE array = SCNetworkInterfaceCopyAll();
|
||||
for (CFIndex i = 0, length = CFArrayGetCount(array); i < length; ++i)
|
||||
{
|
||||
SCNetworkInterfaceRef ni = CFArrayGetValueAtIndex(array, i), parent;
|
||||
while ((parent = SCNetworkInterfaceGetInterface(ni)))
|
||||
ni = parent;
|
||||
|
||||
CFStringRef cfType = SCNetworkInterfaceGetInterfaceType(ni);
|
||||
if (cfType)
|
||||
ffCfStrGetString(cfType, &sbType);
|
||||
else
|
||||
ffStrbufAppendS(&sbType, "Unknown");
|
||||
|
||||
if (instance->config.networkType.length && !ffStrbufContainIgnCase(&instance->config.networkType, &sbType))
|
||||
continue;
|
||||
|
||||
FFNetworkResult* item = (FFNetworkResult*) ffListAdd(result);
|
||||
ffStrbufInitMove(&item->type, &sbType);
|
||||
ffStrbufInit(&item->name);
|
||||
ffStrbufInit(&item->address);
|
||||
item->mtu = 0;
|
||||
item->up = true;
|
||||
|
||||
ffCfStrGetString(SCNetworkInterfaceGetLocalizedDisplayName(ni), &item->name);
|
||||
ffCfStrGetString(SCNetworkInterfaceGetHardwareAddressString(ni), &item->address);
|
||||
SCNetworkInterfaceCopyMTU(ni, (int*) &item->mtu, nil, nil);
|
||||
}
|
||||
|
||||
if (result->length == 0)
|
||||
return "No network interfaces found";
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
#include "common/io/io.h"
|
||||
#include "detection/network/network.h"
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
#include <ifaddrs.h>
|
||||
|
||||
const char* ffDetectNetwork(FF_MAYBE_UNUSED FFinstance* instance, FFlist* result)
|
||||
{
|
||||
struct ifaddrs* ifAddrStruct = NULL;
|
||||
if(getifaddrs(&ifAddrStruct) < 0)
|
||||
return "getifaddrs(&ifAddrStruct) failed";
|
||||
|
||||
int FF_AUTO_CLOSE_FD sockfd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
for (struct ifaddrs* ifa = ifAddrStruct; ifa; ifa = ifa->ifa_next)
|
||||
{
|
||||
if (!ifa->ifa_addr || ifa->ifa_addr->sa_family != AF_LINK)
|
||||
continue;
|
||||
|
||||
if (ifa->ifa_flags & IFF_LOOPBACK || !(ifa->ifa_flags & IFF_RUNNING))
|
||||
continue;
|
||||
|
||||
bool isUp = !!(ifa->ifa_flags & IFF_UP);
|
||||
if (!isUp && !instance->config.networkAll)
|
||||
continue;
|
||||
|
||||
FFNetworkResult* item = (FFNetworkResult*) ffListAdd(result);
|
||||
ffStrbufInit(&item->type);
|
||||
ffStrbufInitS(&item->name, ifa->ifa_name);
|
||||
|
||||
uint8_t* ptr = (uint8_t*) LLADDR((struct sockaddr_dl *)ifa->ifa_addr);
|
||||
ffStrbufInitF(&item->address, "%02x:%02x:%02x:%02x:%02x:%02x",
|
||||
ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5]);
|
||||
|
||||
if (sockfd > 0)
|
||||
{
|
||||
struct ifreq ifr;
|
||||
strcpy(ifr.ifr_name, ifa->ifa_name);
|
||||
item->mtu = ioctl(sockfd, SIOCGIFMTU, &ifr) >= 0 ? (uint32_t) ifr.ifr_mtu : 0;
|
||||
}
|
||||
|
||||
item->up = isUp;
|
||||
}
|
||||
|
||||
freeifaddrs(ifAddrStruct);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
#include "common/io/io.h"
|
||||
#include "detection/network/network.h"
|
||||
|
||||
#include <net/if.h>
|
||||
#include <linux/if_arp.h>
|
||||
|
||||
const char* ffDetectNetwork(FFinstance* instance, FFlist* result)
|
||||
{
|
||||
FF_STRBUF_AUTO_DESTROY sbType;
|
||||
ffStrbufInit(&sbType);
|
||||
|
||||
struct if_nameindex* infs = if_nameindex();
|
||||
if(!infs)
|
||||
return "if_nameindex() failed";
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY path;
|
||||
ffStrbufInit(&path);
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY fileContent;
|
||||
ffStrbufInit(&fileContent);
|
||||
|
||||
for(struct if_nameindex* i = infs; !(i->if_index == 0 && i->if_name == NULL); ++i)
|
||||
{
|
||||
if (strcmp(i->if_name, "lo") == 0)
|
||||
continue;
|
||||
|
||||
ffStrbufSetF(&path, "/sys/class/net/%s/operstate", i->if_name);
|
||||
if (!ffReadFileBuffer(path.chars, &fileContent))
|
||||
continue;
|
||||
|
||||
bool isUp = ffStrbufEqualS(&fileContent, "up");
|
||||
if (!isUp && !instance->config.networkAll)
|
||||
continue;
|
||||
|
||||
ffStrbufSetF(&path, "/sys/class/net/%s/type", i->if_name);
|
||||
if (!ffReadFileBuffer(path.chars, &fileContent))
|
||||
continue;
|
||||
|
||||
const char* strType = NULL;
|
||||
switch (ffStrbufToUInt16(&fileContent, 0))
|
||||
{
|
||||
case ARPHRD_ETHER:
|
||||
case ARPHRD_EETHER:
|
||||
strType = "Ethernet";
|
||||
break;
|
||||
case ARPHRD_AX25:
|
||||
strType = "AX25";
|
||||
break;
|
||||
case ARPHRD_PRONET:
|
||||
strType = "TokenRing";
|
||||
break;
|
||||
case ARPHRD_CHAOS:
|
||||
strType = "Chaosnet";
|
||||
break;
|
||||
case ARPHRD_IEEE802:
|
||||
strType = "IEEE802";
|
||||
break;
|
||||
case ARPHRD_ARCNET:
|
||||
strType = "ARCnet";
|
||||
break;
|
||||
case ARPHRD_APPLETLK:
|
||||
strType = "APPLEtalk";
|
||||
break;
|
||||
case ARPHRD_DLCI:
|
||||
strType = "DLCI";
|
||||
break;
|
||||
case ARPHRD_ATM:
|
||||
strType = "ATM";
|
||||
break;
|
||||
case ARPHRD_METRICOM:
|
||||
strType = "Metricom";
|
||||
break;
|
||||
case ARPHRD_IEEE1394:
|
||||
strType = "IEEE1394";
|
||||
break;
|
||||
case ARPHRD_EUI64:
|
||||
strType = "EUI64";
|
||||
break;
|
||||
case ARPHRD_INFINIBAND:
|
||||
strType = "InfiniBand";
|
||||
break;
|
||||
default:
|
||||
strType = "Other";
|
||||
break;
|
||||
}
|
||||
|
||||
if (instance->config.networkType.length && !ffStrbufContainIgnCaseS(&instance->config.networkType, strType))
|
||||
continue;
|
||||
|
||||
FFNetworkResult* item = (FFNetworkResult*) ffListAdd(result);
|
||||
ffStrbufInitS(&item->type, strType);
|
||||
ffStrbufInitS(&item->name, i->if_name);
|
||||
ffStrbufInit(&item->address);
|
||||
item->mtu = 0;
|
||||
item->up = isUp;
|
||||
|
||||
ffStrbufSetF(&path, "/sys/class/net/%s/address", i->if_name);
|
||||
ffReadFileBuffer(path.chars, &item->address);
|
||||
|
||||
ffStrbufSetF(&path, "/sys/class/net/%s/mtu", i->if_name);
|
||||
if (ffReadFileBuffer(path.chars, &fileContent))
|
||||
item->mtu = ffStrbufToUInt16(&fileContent, 0);
|
||||
}
|
||||
|
||||
if_freenameindex(infs);
|
||||
|
||||
if (result->length == 0)
|
||||
return "No network interfaces found";
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
#include "detection/network/network.h"
|
||||
#include "util/windows/unicode.h"
|
||||
#include "util/mallocHelper.h"
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <iphlpapi.h>
|
||||
#include <wchar.h>
|
||||
|
||||
const char* ffDetectNetwork(FFinstance* instance, FFlist* result)
|
||||
{
|
||||
IP_ADAPTER_ADDRESSES* FF_AUTO_FREE adapter_addresses = NULL;
|
||||
|
||||
// Start with a 16 KB buffer and resize if needed -
|
||||
// multiple attempts in case interfaces change while
|
||||
// we are in the middle of querying them.
|
||||
DWORD adapter_addresses_buffer_size = 16 * 1024;
|
||||
for (int attempts = 0; attempts != 3; ++attempts)
|
||||
{
|
||||
adapter_addresses = (IP_ADAPTER_ADDRESSES*)realloc(adapter_addresses, adapter_addresses_buffer_size);
|
||||
assert(adapter_addresses);
|
||||
|
||||
DWORD error = GetAdaptersAddresses(
|
||||
AF_UNSPEC,
|
||||
GAA_FLAG_SKIP_ANYCAST |
|
||||
GAA_FLAG_SKIP_MULTICAST |
|
||||
GAA_FLAG_SKIP_DNS_SERVER |
|
||||
GAA_FLAG_SKIP_FRIENDLY_NAME,
|
||||
NULL,
|
||||
adapter_addresses,
|
||||
&adapter_addresses_buffer_size);
|
||||
|
||||
if (error == ERROR_SUCCESS)
|
||||
break;
|
||||
else if (ERROR_BUFFER_OVERFLOW == error)
|
||||
continue;
|
||||
else
|
||||
return "GetAdaptersAddresses() failed";
|
||||
}
|
||||
|
||||
// Iterate through all of the adapters
|
||||
for (IP_ADAPTER_ADDRESSES* adapter = adapter_addresses; adapter; adapter = adapter->Next)
|
||||
{
|
||||
if (adapter->IfType == IF_TYPE_SOFTWARE_LOOPBACK)
|
||||
continue;
|
||||
|
||||
bool isUp = adapter->OperStatus == IfOperStatusUp;
|
||||
if (!isUp && !instance->config.networkAll)
|
||||
continue;
|
||||
|
||||
const char* strType = NULL;
|
||||
switch (adapter->IfType)
|
||||
{
|
||||
case IF_TYPE_ETHERNET_CSMACD:
|
||||
strType = "Ethernet";
|
||||
break;
|
||||
case IF_TYPE_ISO88025_TOKENRING:
|
||||
strType = "TokenRing";
|
||||
break;
|
||||
case IF_TYPE_PPP:
|
||||
strType = "PPP";
|
||||
break;
|
||||
case IF_TYPE_ATM:
|
||||
strType = "ATM";
|
||||
break;
|
||||
case IF_TYPE_IEEE80211:
|
||||
strType = "IEEE80211";
|
||||
break;
|
||||
case IF_TYPE_TUNNEL:
|
||||
strType = "Tunnel";
|
||||
break;
|
||||
case IF_TYPE_IEEE1394:
|
||||
strType = "Fireware";
|
||||
break;
|
||||
case IF_TYPE_MODEM:
|
||||
strType = "Modem";
|
||||
break;
|
||||
default:
|
||||
strType = "Other";
|
||||
break;
|
||||
}
|
||||
|
||||
if (instance->config.networkType.length && !ffStrbufContainIgnCaseS(&instance->config.networkType, strType))
|
||||
continue;
|
||||
|
||||
FFNetworkResult* item = (FFNetworkResult*) ffListAdd(result);
|
||||
ffStrbufInitS(&item->type, strType);
|
||||
ffStrbufInit(&item->name);
|
||||
ffStrbufInit(&item->address);
|
||||
item->mtu = adapter->Mtu;
|
||||
item->up = isUp;
|
||||
|
||||
ffStrbufSetWS(&item->name, adapter->FriendlyName);
|
||||
for (ULONG i = 0; i < adapter->PhysicalAddressLength; i++)
|
||||
ffStrbufAppendF(&item->address, "%.2x-", (int) adapter->PhysicalAddress[i]);
|
||||
ffStrbufTrimRight(&item->address, '-');
|
||||
}
|
||||
|
||||
if (result->length == 0)
|
||||
return "No network interfaces found";
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -1341,10 +1341,6 @@ static void parseOption(FFinstance* instance, FFdata* data, const char* key, con
|
||||
}
|
||||
else if(strcasecmp(key, "--percent-type") == 0)
|
||||
instance->config.percentType = optionParseUInt32(key, value);
|
||||
else if(strcasecmp(key, "--network-type") == 0)
|
||||
optionParseString(key, value, &instance->config.networkType);
|
||||
else if(strcasecmp(key, "--network-all") == 0)
|
||||
instance->config.networkAll = optionParseBoolean(value);
|
||||
else if(strcasecmp(key, "--command-shell") == 0)
|
||||
optionParseString(key, value, &instance->config.commandShell);
|
||||
else if(strcasecmp(key, "--command-key") == 0)
|
||||
@@ -1520,8 +1516,6 @@ static void parseStructureCommand(FFinstance* instance, FFdata* data, const char
|
||||
ffPrintSound(instance);
|
||||
else if(strcasecmp(line, "gamepad") == 0)
|
||||
ffPrintGamepad(instance);
|
||||
else if(strcasecmp(line, "network") == 0)
|
||||
ffPrintNetwork(instance);
|
||||
else
|
||||
ffPrintErrorString(instance, line, 0, NULL, NULL, "<no implementation provided>");
|
||||
}
|
||||
|
||||
@@ -163,7 +163,6 @@ typedef struct FFconfig
|
||||
FFModuleArgs bluetooth;
|
||||
FFModuleArgs sound;
|
||||
FFModuleArgs gamepad;
|
||||
FFModuleArgs network;
|
||||
|
||||
FFstrbuf libPCI;
|
||||
FFstrbuf libVulkan;
|
||||
@@ -244,9 +243,6 @@ typedef struct FFconfig
|
||||
FFstrbuf commandShell;
|
||||
FFlist commandKeys;
|
||||
FFlist commandTexts;
|
||||
|
||||
FFstrbuf networkType;
|
||||
bool networkAll;
|
||||
} FFconfig;
|
||||
|
||||
typedef struct FFstate
|
||||
@@ -353,6 +349,5 @@ void ffPrintCommand(FFinstance* instance);
|
||||
void ffPrintBluetooth(FFinstance* instance);
|
||||
void ffPrintSound(FFinstance* instance);
|
||||
void ffPrintGamepad(FFinstance* instance);
|
||||
void ffPrintNetwork(FFinstance* instance);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
#include "fastfetch.h"
|
||||
#include "common/printing.h"
|
||||
#include "detection/network/network.h"
|
||||
|
||||
#define FF_NETWORK_MODULE_NAME "Network"
|
||||
#define FF_NETWORK_NUM_FORMAT_ARGS 5
|
||||
|
||||
void ffPrintNetwork(FFinstance* instance)
|
||||
{
|
||||
FF_LIST_AUTO_DESTROY networks;
|
||||
ffListInit(&networks, sizeof(FFNetworkResult));
|
||||
const char* error = ffDetectNetwork(instance, &networks);
|
||||
|
||||
if(error != NULL)
|
||||
{
|
||||
ffPrintError(instance, FF_NETWORK_MODULE_NAME, 0, &instance->config.network, "%s", error);
|
||||
return;
|
||||
}
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY key;
|
||||
ffStrbufInit(&key);
|
||||
|
||||
FF_LIST_FOR_EACH(FFNetworkResult, network, networks)
|
||||
{
|
||||
if(instance->config.network.key.length == 0)
|
||||
{
|
||||
if (network->type.length > 0)
|
||||
ffStrbufSetF(&key, "%s (%s)", FF_NETWORK_MODULE_NAME, network->type.chars);
|
||||
else
|
||||
ffStrbufSetS(&key, FF_NETWORK_MODULE_NAME);
|
||||
}
|
||||
else
|
||||
{
|
||||
ffParseFormatString(&key, &instance->config.network.key, 1, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &network->type},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &network->name},
|
||||
});
|
||||
}
|
||||
|
||||
if (instance->config.network.outputFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(instance, key.chars, 0, NULL);
|
||||
printf("%s - %s\n", network->name.chars, network->address.chars);
|
||||
}
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, key.chars, 0, NULL, &instance->config.network.outputFormat, FF_NETWORK_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRING, network->up ? "UP" : "DOWN"},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &network->type},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &network->name},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &network->address},
|
||||
{FF_FORMAT_ARG_TYPE_INT, &network->mtu},
|
||||
});
|
||||
}
|
||||
|
||||
ffStrbufDestroy(&network->type);
|
||||
ffStrbufDestroy(&network->name);
|
||||
ffStrbufDestroy(&network->address);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user