Implement -U for OpenBSD.

Tested on OpenBSD 7.6.
Takes part of #2072.
This commit is contained in:
Tóth János
2025-02-18 14:52:29 +01:00
parent 049df83c87
commit db46ca9dea
5 changed files with 22 additions and 11 deletions

View File

@@ -163,7 +163,7 @@ file.
**-U \| \--unique** **-U \| \--unique**
: Conky won't start if another Conky process is already running. Implemented : Conky won't start if another Conky process is already running. Implemented
only for Linux, FreeBSD, NetBSD and Haiku. only for Linux, FreeBSD, NetBSD, OpenBSD and Haiku.
**-v \| -V \| \--version** **-v \| -V \| \--version**

View File

@@ -2112,9 +2112,9 @@ void set_current_config() {
const char *getopt_string = const char *getopt_string =
"vVqdDSs:t:u:i:hc:p:" "vVqdDSs:t:u:i:hc:p:"
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
defined(__HAIKU__) || defined(__NetBSD__) defined(__HAIKU__) || defined(__NetBSD__) || defined(__OpenBSD__)
"U" "U"
#endif /* Linux || FreeBSD || Haiku || NetBSD */ #endif /* Linux || FreeBSD || Haiku || NetBSD || OpenBSD */
#ifdef BUILD_X11 #ifdef BUILD_X11
"x:y:w:a:X:m:f:" "x:y:w:a:X:m:f:"
#ifdef OWN_WINDOW #ifdef OWN_WINDOW
@@ -2146,9 +2146,9 @@ const struct option longopts[] = {
{"text", 1, nullptr, 't'}, {"interval", 1, nullptr, 'u'}, {"text", 1, nullptr, 't'}, {"interval", 1, nullptr, 'u'},
{"pause", 1, nullptr, 'p'}, {"pause", 1, nullptr, 'p'},
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
defined(__HAIKU__) || defined(__NetBSD__) defined(__HAIKU__) || defined(__NetBSD__) || defined(__OpenBSD__)
{"unique", 0, nullptr, 'U'}, {"unique", 0, nullptr, 'U'},
#endif /* Linux || FreeBSDi || Haiku || NetBSD */ #endif /* Linux || FreeBSD || Haiku || NetBSD || OpenBSD */
{nullptr, 0, nullptr, 0} {nullptr, 0, nullptr, 0}
}; };

View File

@@ -444,3 +444,8 @@ void prepare_update() {}
int get_entropy_avail(unsigned int *val) { return 1; } int get_entropy_avail(unsigned int *val) { return 1; }
int get_entropy_poolsize(unsigned int *val) { return 1; } int get_entropy_poolsize(unsigned int *val) { return 1; }
bool is_conky_already_running() {
return bsdcommon::is_conky_already_running();
}

View File

@@ -30,4 +30,6 @@ typedef struct apm_power_info *apm_info_t;
int get_entropy_avail(unsigned int *); int get_entropy_avail(unsigned int *);
int get_entropy_poolsize(unsigned int *); int get_entropy_poolsize(unsigned int *);
bool is_conky_already_running();
#endif /*OPENBSD_H_*/ #endif /*OPENBSD_H_*/

View File

@@ -56,6 +56,10 @@
#include "data/os/netbsd.h" #include "data/os/netbsd.h"
#endif /* NetBSD */ #endif /* NetBSD */
#if defined(__OpenBSD__)
#include "data/os/openbsd.h"
#endif /* OpenBSD */
#if defined(__HAIKU__) #if defined(__HAIKU__)
#include "data/os/haiku.h" #include "data/os/haiku.h"
#endif /* Haiku */ #endif /* Haiku */
@@ -282,9 +286,9 @@ static void print_help(const char *prog_name) {
" -p, --pause=SECS pause for SECS seconds at startup " " -p, --pause=SECS pause for SECS seconds at startup "
"before doing anything\n" "before doing anything\n"
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
defined(__HAIKU__) || defined(__NetBSD__) defined(__HAIKU__) || defined(__NetBSD__) || defined(__OpenBSD__)
" -U, --unique only one conky process can be created\n" " -U, --unique only one conky process can be created\n"
#endif /* Linux || FreeBSD || Haiku || NetBSD */ #endif /* Linux || FreeBSD || Haiku || NetBSD || OpenBSD */
, prog_name); , prog_name);
} }
@@ -368,23 +372,23 @@ int main(int argc, char **argv) {
break; break;
#endif /* BUILD_X11 */ #endif /* BUILD_X11 */
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
defined(__HAIKU__) || defined(__NetBSD__) defined(__HAIKU__) || defined(__NetBSD__) || defined(__OpenBSD__)
case 'U': case 'U':
unique_process = true; unique_process = true;
break; break;
#endif /* Linux || FreeBSD || Haiku || NetBSD */ #endif /* Linux || FreeBSD || Haiku || NetBSD || OpenBSD */
case '?': case '?':
return EXIT_FAILURE; return EXIT_FAILURE;
} }
} }
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \
defined(__HAIKU__) || defined(__NetBSD__) defined(__HAIKU__) || defined(__NetBSD__) || defined(__OpenBSD__)
if (unique_process && is_conky_already_running()) { if (unique_process && is_conky_already_running()) {
NORM_ERR("already running"); NORM_ERR("already running");
return 0; return 0;
} }
#endif /* Linux || FreeBSD || Haiku */ #endif /* Linux || FreeBSD || Haiku || NetBSD || OpenBSD */
try { try {
set_current_config(); set_current_config();