diff options
author | netblue30 <netblue30@protonmail.com> | 2022-04-21 11:41:40 -0400 |
---|---|---|
committer | netblue30 <netblue30@protonmail.com> | 2022-04-21 11:41:40 -0400 |
commit | 62e33cfc37635d985c186c8e5aaf1101070f9ccf (patch) | |
tree | c65e64d5b425c2689446d583fc531f27a0b4701d /src/firecfg/main.c | |
parent | firecfg --guide (diff) | |
download | firejail-62e33cfc37635d985c186c8e5aaf1101070f9ccf.tar.gz firejail-62e33cfc37635d985c186c8e5aaf1101070f9ccf.tar.zst firejail-62e33cfc37635d985c186c8e5aaf1101070f9ccf.zip |
more on firecfg --guide
Diffstat (limited to 'src/firecfg/main.c')
-rw-r--r-- | src/firecfg/main.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/firecfg/main.c b/src/firecfg/main.c index 0072c2768..19f2573f3 100644 --- a/src/firecfg/main.c +++ b/src/firecfg/main.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "../include/firejail_user.h" | 22 | #include "../include/firejail_user.h" |
23 | int arg_debug = 0; | 23 | int arg_debug = 0; |
24 | char *arg_bindir = "/usr/local/bin"; | 24 | char *arg_bindir = "/usr/local/bin"; |
25 | int arg_guide = 0; | ||
25 | 26 | ||
26 | static char *usage_str = | 27 | static char *usage_str = |
27 | "Firecfg is the desktop configuration utility for Firejail software. The utility\n" | 28 | "Firecfg is the desktop configuration utility for Firejail software. The utility\n" |
@@ -375,8 +376,7 @@ int main(int argc, char **argv) { | |||
375 | return 0; | 376 | return 0; |
376 | } | 377 | } |
377 | else if (strcmp(argv[i], "--guide") == 0) { | 378 | else if (strcmp(argv[i], "--guide") == 0) { |
378 | return system(LIBDIR "/firejail/firejail-welcome.sh"); | 379 | arg_guide = 1; |
379 | return 0; | ||
380 | } | 380 | } |
381 | else if (strcmp(argv[i], "--list") == 0) { | 381 | else if (strcmp(argv[i], "--list") == 0) { |
382 | list(); | 382 | list(); |
@@ -442,6 +442,19 @@ int main(int argc, char **argv) { | |||
442 | umask(orig_umask); | 442 | umask(orig_umask); |
443 | } | 443 | } |
444 | 444 | ||
445 | if (arg_guide) { | ||
446 | int status = system("sudo "LIBDIR "/firejail/firejail-welcome.sh zenity " SYSCONFDIR); | ||
447 | if (status == -1) { | ||
448 | fprintf(stderr, "Error: cannot run firejail-welcome.sh\n"); | ||
449 | exit(1); | ||
450 | } | ||
451 | |||
452 | // the last 8 bits of the status is the return value of the command executed by system() | ||
453 | // firejail-welcome.sh returns 55 if setting sysmlinks is required | ||
454 | if (WEXITSTATUS(status) != 55) | ||
455 | return 0; | ||
456 | } | ||
457 | |||
445 | // clear all symlinks | 458 | // clear all symlinks |
446 | clean(); | 459 | clean(); |
447 | 460 | ||
@@ -473,8 +486,6 @@ int main(int argc, char **argv) { | |||
473 | #endif | 486 | #endif |
474 | } | 487 | } |
475 | 488 | ||
476 | |||
477 | |||
478 | // set new symlinks based on ~/.config/firejail directory | 489 | // set new symlinks based on ~/.config/firejail directory |
479 | set_links_homedir(home); | 490 | set_links_homedir(home); |
480 | 491 | ||