Skip to content

Commit

Permalink
Make application arguments optional
Browse files Browse the repository at this point in the history
If no application is specified, run without starting a child
process. Leave it up to the user to start applications externally
and stop cage with a signal.
  • Loading branch information
emersion committed Nov 22, 2024
1 parent 852839e commit c4b2c00
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 9 deletions.
2 changes: 1 addition & 1 deletion cage.1.scd
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ cage - a Wayland kiosk compositor

# SYNOPSIS

*cage* [options...] [--] _application_ [application argument ...]
*cage* [options...] [--] [_application_...]

# DESCRIPTION

Expand Down
12 changes: 4 additions & 8 deletions cage.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ static void
usage(FILE *file, const char *cage)
{
fprintf(file,
"Usage: %s [OPTIONS] [--] APPLICATION\n"
"Usage: %s [OPTIONS] [--] [APPLICATION...]\n"
"\n"
" -d\t Don't draw client side decorations, when possible\n"
" -D\t Enable debug logging\n"
Expand Down Expand Up @@ -272,11 +272,6 @@ parse_args(struct cg_server *server, int argc, char *argv[])
}
}

if (optind >= argc) {
usage(stderr, argv[0]);
return false;
}

return true;
}

Expand Down Expand Up @@ -592,7 +587,7 @@ main(int argc, char *argv[])
}
#endif

if (!spawn_primary_client(&server, argv + optind, &pid, &sigchld_source)) {
if (optind < argc && !spawn_primary_client(&server, argv + optind, &pid, &sigchld_source)) {
ret = 1;
goto end;
}
Expand All @@ -607,7 +602,8 @@ main(int argc, char *argv[])
wl_display_destroy_clients(server.wl_display);

end:
app_ret = cleanup_primary_client(pid);
if (pid != 0)
app_ret = cleanup_primary_client(pid);
if (!ret && server.return_app_code)
ret = app_ret;

Expand Down

0 comments on commit c4b2c00

Please sign in to comment.