aboutsummaryrefslogtreecommitdiffstats
path: root/src/firecfg/main.c
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@protonmail.com>2022-04-21 11:41:40 -0400
committerLibravatar netblue30 <netblue30@protonmail.com>2022-04-21 11:41:40 -0400
commit62e33cfc37635d985c186c8e5aaf1101070f9ccf (patch)
treec65e64d5b425c2689446d583fc531f27a0b4701d /src/firecfg/main.c
parentfirecfg --guide (diff)
downloadfirejail-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.c19
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"
23int arg_debug = 0; 23int arg_debug = 0;
24char *arg_bindir = "/usr/local/bin"; 24char *arg_bindir = "/usr/local/bin";
25int arg_guide = 0;
25 26
26static char *usage_str = 27static 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