static bool os_release_parse(map<string, string> *m, CephContext *cct)
{
+#if defined(__linux__)
static const map<string, string> kvm = {
{ "distro", "ID=" },
{ "distro_description", "PRETTY_NAME=" },
file_values_parse(kvm, fp, m, cct);
fclose(fp);
+#elif defined(__FreeBSD__)
+ struct utsname u;
+ int r = uname(&u);
+ if (!r) {
+ m->insert(std::make_pair("distro", u.sysname));
+ m->insert(std::make_pair("distro_description", u.version));
+ m->insert(std::make_pair("distro_version", u.release));
+ }
+#endif
return true;
}
jf.dump_string("utsname_version", u.version);
jf.dump_string("utsname_machine", u.machine);
}
-
- // os-releaes
+#if defined(__linux__)
+ // os-release
int in = ::open("/etc/os-release", O_RDONLY);
if (in >= 0) {
char buf[4096];
}
::close(in);
}
+#endif
// assert?
if (g_assert_condition) {