diff --git a/meson.build b/meson.build index 111b002..fdc8ad3 100644 --- a/meson.build +++ b/meson.build @@ -95,7 +95,7 @@ platform_sources = { 'dragonfly' : ['src/os/bsd.cpp', 'src/os/bsd/package.cpp'], 'freebsd' : ['src/os/bsd.cpp', 'src/os/bsd/package.cpp'], 'haiku' : ['src/os/haiku.cpp', 'src/os/haiku/package.cpp'], - 'linux' : ['src/os/linux.cpp', 'src/os/linux/package.cpp'], + 'linux' : ['src/os/linux.cpp'], 'netbsd' : ['src/os/bsd.cpp', 'src/os/bsd/package.cpp'], 'serenity' : ['src/os/serenity.cpp', 'src/os/serenity/package.cpp'], 'windows' : ['src/os/windows.cpp'], diff --git a/src/os/linux.cpp b/src/os/linux.cpp index dffcabc..44be436 100644 --- a/src/os/linux.cpp +++ b/src/os/linux.cpp @@ -1,23 +1,30 @@ #ifdef __linux__ // clang-format off -#include // std::strlen -#include // DBUS_BUS_SESSION -#include // DBUS_TYPE_* -#include // std::{unexpected, expected} -#include // std::{format, format_to_n} -#include // std::ifstream -#include // PATH_MAX -#include // std::numeric_limits -#include // std::{getline, string (String)} -#include // std::string_view (StringView) -#include // ucred, getsockopt, SOL_SOCKET, SO_PEERCRED -#include // statvfs -#include // sysinfo -#include // utsname, uname -#include // readlink -#include // std::move +#include // SQLite::{Database, OPEN_READONLY} +#include // SQLite::Exception +#include // SQLite::Statement +#include // PATH_MAX +#include // std::strlen +#include // DBUS_TYPE_* +#include // DBUS_BUS_SESSION +#include // std::{unexpected, expected} +#include // std::filesystem::{current_path, directory_entry, directory_iterator, etc.} +#include // std::{format, format_to_n} +#include // std::ifstream +#include // glz::read_beve +#include // glz::write_beve +#include // std::numeric_limits +#include // std::{getline, string (String)} +#include // std::string_view (StringView) +#include // ucred, getsockopt, SOL_SOCKET, SO_PEERCRED +#include // statvfs +#include // sysinfo +#include // utsname, uname +#include // readlink +#include // std::move +#include "src/core/package.hpp" #include "src/util/defs.hpp" #include "src/util/error.hpp" #include "src/util/helpers.hpp" @@ -472,4 +479,32 @@ namespace os { } } // namespace os +namespace package { + using namespace std::string_literals; + + fn GetDpkgCount() -> Result { + return GetCountFromDirectory("Dpkg", fs::current_path().root_path() / "var" / "lib" / "dpkg" / "info", ".list"s); + } + + fn GetMossCount() -> Result { + const PackageManagerInfo mossInfo = { + .id = "moss", + .dbPath = "/.moss/db/install", + .countQuery = "SELECT COUNT(*) FROM meta", + }; + + Result countResult = GetCountFromDb(mossInfo); + + if (countResult) + if (*countResult > 0) + return *countResult - 1; + + return countResult; + } + + fn GetPacmanCount() -> Result { + return GetCountFromDirectory("Pacman", fs::current_path().root_path() / "var" / "lib" / "pacman" / "local", true); + } +} // namespace package + #endif // __linux__ diff --git a/src/os/linux/package.cpp b/src/os/linux/package.cpp deleted file mode 100644 index 76148b0..0000000 --- a/src/os/linux/package.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifdef __linux__ - -// clang-format off -#include "src/core/package.hpp" - -#include // SQLite::{Database, OPEN_READONLY} -#include // SQLite::Exception -#include // SQLite::Statement -#include // std::filesystem::{current_path, directory_entry, directory_iterator, etc.} -#include // glz::read_beve -#include // glz::write_beve - -#include "src/util/defs.hpp" -// clang-format on - -using namespace std::string_literals; - -namespace package { - fn GetDpkgCount() -> Result { - return GetCountFromDirectory("Dpkg", fs::current_path().root_path() / "var" / "lib" / "dpkg" / "info", ".list"s); - } - - fn GetMossCount() -> Result { - const PackageManagerInfo mossInfo = { - .id = "moss", - .dbPath = "/.moss/db/install", - .countQuery = "SELECT COUNT(*) FROM meta", - }; - - Result countResult = GetCountFromDb(mossInfo); - - if (countResult) - if (*countResult > 0) - return *countResult - 1; - - return countResult; - } - - fn GetPacmanCount() -> Result { - return GetCountFromDirectory("Pacman", fs::current_path().root_path() / "var" / "lib" / "pacman" / "local", true); - } -} // namespace package - -#endif // __linux__