Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.4.0 #665

Merged
merged 53 commits into from
Dec 18, 2023
Merged
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
40aa4a6
Packages: improve performance of pkg and rpm detection
CarterLi Dec 8, 2023
a19888b
CI: don't run cpuusage in FreeBSD, which seems to have issues when ru…
CarterLi Dec 8, 2023
77cc0c6
Doc: update changelog
CarterLi Dec 8, 2023
4925222
CI: run basic modules only in FreeBSD
CarterLi Dec 8, 2023
f20b6d4
Temps (macOS): support Apple M3
CarterLi Dec 8, 2023
a28dc8a
DisplayServer (Linux): support `--ds-force-drm sysfs-only`
CarterLi Dec 11, 2023
165c213
FFstrbuf: don't crash with `ffStrbufAppendNC(&str, 0, 'c')`
CarterLi Dec 11, 2023
663d568
DE (Linux): fix xfce4 version detection
CarterLi Dec 11, 2023
0555fb9
TerminalShell (Linux): tidy
CarterLi Dec 12, 2023
453f475
DE (FreeBSD): support detection with processes
CarterLi Dec 12, 2023
a565dcf
Doc: update changelog
CarterLi Dec 12, 2023
b63e6a3
DE (Linux): add support for CDE
CarterLi Dec 12, 2023
25a7927
WMDE: tidy
CarterLi Dec 12, 2023
f62cdff
README: add start history
CarterLi Dec 13, 2023
8ed5d30
Wifi (Windows): use less magic numbers
CarterLi Dec 13, 2023
833727f
remove unnecessary escaping for Adelie logo
Dec 14, 2023
8048101
Doc: fix documentation of `--ds-force-drm`
CarterLi Dec 14, 2023
e804dfc
Memory (macOS): align algo of memory usage counting to `stats`
CarterLi Dec 14, 2023
224a6a9
TerminalShell: code cleanup
CarterLi Dec 15, 2023
10e1753
DisplayServer (Linux): better handling abnormal situations
CarterLi Dec 16, 2023
8fa073b
DisplayServer (Linux): test for `status` instead of `enabled`
CarterLi Dec 16, 2023
335022e
SMBIOS: ignore more meaningless values
CarterLi Dec 17, 2023
f91a8ae
DiskIO (Linux): improve detection
CarterLi Dec 17, 2023
b348408
FFPlatform (Linux): tidy
CarterLi Dec 17, 2023
d32125e
DiskIO (Linux): improve device name detection
CarterLi Dec 17, 2023
3400e40
DiskIO (Linux): detect device serial number
CarterLi Dec 17, 2023
e071a1e
Disk (Linux): improve removable type detection
CarterLi Dec 17, 2023
529f94c
DiskIO (Linux): better handling virtual devices
CarterLi Dec 17, 2023
b692b75
DiskIO (Linux): detect interconnect more aggressively
CarterLi Dec 17, 2023
9339a0f
DiskIO (Windows): detect serial number
CarterLi Dec 17, 2023
e7c7871
DiskIO: print serial number in json format
CarterLi Dec 17, 2023
1dbd847
DiskIO (Linux): fix serial number detection
CarterLi Dec 17, 2023
70f39e6
DiskIO (Windows): improve device name detection
CarterLi Dec 17, 2023
fb8c7d6
DiskIO: add property `removable`
CarterLi Dec 17, 2023
ce9f9ed
Windows: try fixing `--no-buffer`
CarterLi Dec 17, 2023
c3a2806
DiskIO: tidy
CarterLi Dec 17, 2023
4e4246a
DiskIO (Windows): fix segfault and memleak
CarterLi Dec 17, 2023
04a41cb
DiskIO (Windows): don't use registry
CarterLi Dec 17, 2023
569883a
DiskIO (FreeBSD): detect disk serial number
CarterLi Dec 17, 2023
0f497a5
DiskIO (macOS): detect serial number and removable
CarterLi Dec 18, 2023
3cd81ec
PhysicalDisk: add new module
CarterLi Dec 18, 2023
89bc7eb
DiskIO: move device info detected in `PhysicalDisk` module
CarterLi Dec 18, 2023
e832630
Doc: add module physical disk
CarterLi Dec 18, 2023
9937eea
Logo (Builtin): add EshanizedOS
CarterLi Dec 18, 2023
064d7d3
Doc: update changelog
CarterLi Dec 18, 2023
c076f5a
Github: update issue templates
CarterLi Dec 18, 2023
4f3cd46
Presets: rename all flag based files to `*.conf`
CarterLi Dec 18, 2023
e89d475
Presets: remove flag based config files
CarterLi Dec 18, 2023
4ae0c43
IO: remove support of `FF_PATHTYPE_LINK`
CarterLi Dec 18, 2023
11b1b97
IO: only retry when open() error is ENOENT / ERROR_PATH_NOT_FOUND
CarterLi Dec 18, 2023
600f6c7
Image: don't `dlclose(imageMagick)`
CarterLi Dec 18, 2023
70160d3
fix(DiskIO, PhysicalDisk): fix readlink
apocelipes Dec 18, 2023
d84ae91
Release: v2.4.0
CarterLi Dec 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion src/detection/terminalshell/terminalshell.c
Original file line number Diff line number Diff line change
@@ -4,6 +4,8 @@
#include "common/properties.h"
#include "util/stringUtils.h"

#include <ctype.h>

#ifdef _WIN32

#include "util/mallocHelper.h"
@@ -162,6 +164,28 @@ static bool getShellVersionWinPowerShell(FFstrbuf* exe, FFstrbuf* version)
NULL
}) == NULL;
}
#else
static bool getShellVersionGeneric(FFstrbuf* exe, const char* exeName, FFstrbuf* version)
{
FF_STRBUF_AUTO_DESTROY command = ffStrbufCreate();
ffStrbufAppendS(&command, "printf \"%s\" \"$");
ffStrbufAppendTransformS(&command, exeName, toupper);
ffStrbufAppendS(&command, "_VERSION\"");

if (ffProcessAppendStdOut(version, (char* const[]) {
"env",
"-i",
exe->chars,
"-c",
command.chars,
NULL
}) != NULL)
return false;

ffStrbufSubstrBeforeFirstC(version, '(');
ffStrbufRemoveStrings(version, 2, (const char*[]) { "-release", "release" });
return true;
}
#endif

bool fftsGetShellVersion(FFstrbuf* exe, const char* exeName, FFstrbuf* version)
@@ -198,7 +222,7 @@ bool fftsGetShellVersion(FFstrbuf* exe, const char* exeName, FFstrbuf* version)

return getFileVersion(exe->chars, version);
#else
return false;
return getShellVersionGeneric(exe, exeName, version);
#endif
}

30 changes: 2 additions & 28 deletions src/detection/terminalshell/terminalshell_linux.c
Original file line number Diff line number Diff line change
@@ -5,7 +5,6 @@
#include "common/thread.h"
#include "util/stringUtils.h"

#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
@@ -284,34 +283,8 @@ static void getUserShellFromEnv(FFTerminalShellResult* result)
}
}

static void getShellVersionGeneric(FFstrbuf* exe, const char* exeName, FFstrbuf* version)
{
FF_STRBUF_AUTO_DESTROY command = ffStrbufCreate();
ffStrbufAppendS(&command, "printf \"%s\" \"$");
ffStrbufAppendTransformS(&command, exeName, toupper);
ffStrbufAppendS(&command, "_VERSION\"");

ffProcessAppendStdOut(version, (char* const[]) {
"env",
"-i",
exe->chars,
"-c",
command.chars,
NULL
});
ffStrbufSubstrBeforeFirstC(version, '(');
ffStrbufRemoveStrings(version, 2, (const char*[]) { "-release", "release" });
}

bool fftsGetShellVersion(FFstrbuf* exe, const char* exeName, FFstrbuf* version);

static void getShellVersion(FFstrbuf* exe, const char* exeName, FFstrbuf* version)
{
ffStrbufClear(version);
if(!fftsGetShellVersion(exe, exeName, version))
getShellVersionGeneric(exe, exeName, version);
}

bool fftsGetTerminalVersion(FFstrbuf* processName, FFstrbuf* exe, FFstrbuf* version);

const FFTerminalShellResult* ffDetectTerminalShell()
@@ -348,7 +321,8 @@ const FFTerminalShellResult* ffDetectTerminalShell()
getTerminalFromEnv(&result);
getUserShellFromEnv(&result);

getShellVersion(&result.shellExe, result.shellExeName, &result.shellVersion);
ffStrbufClear(&result.shellVersion);
fftsGetShellVersion(&result.shellExe, result.shellExeName, &result.shellVersion);

if(ffStrbufEqualS(&result.shellProcessName, "pwsh"))
ffStrbufInitStatic(&result.shellPrettyName, "PowerShell");