diff options
author | Havoc Pennington <hp@redhat.com> | 2003-10-12 05:59:39 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2003-10-12 05:59:39 +0000 |
commit | 4097e94af3d2fb1eb865343e3f76ca3949e7c69b (patch) | |
tree | c495c423b72fdb8421ec4266396efa97761fa590 /tools | |
parent | 56cc4ae1a241d36b64dbe26de89714f7771f6e78 (diff) |
2003-10-12 Havoc Pennington <hp@pobox.com>
Added test code that 1) starts an actual bus daemon and 2) uses
DBusGProxy; fixed bugs that were revealed by the test. Lots
more testing possible, but this is the basic framework.
* glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
empty proxy lists from the proxy list hash
* dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
couple of return_if_fail checks
* dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
to allocate, so everything is cleared to NULL as it should be.
* glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
source as data to dbus_connection_set_timeout_functions() as the
timeout functions expected
* test/glib/run-test.sh: add a little script to start up a message
bus and run tests using it
* tools/dbus-launch.1: updates
* tools/dbus-launch.c (main): add --config-file option
* tools/dbus-launch.c (main): remove confusing else if (runprog)
that could never be reached.
* dbus/dbus-message.c (dbus_message_new_method_return)
(dbus_message_new_error, dbus_message_new_signal): set the
no-reply-expected flag on all these. Redundant, but may
as well be consistent.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/dbus-launch.1 | 38 | ||||
-rw-r--r-- | tools/dbus-launch.c | 35 |
2 files changed, 55 insertions, 18 deletions
diff --git a/tools/dbus-launch.1 b/tools/dbus-launch.1 index 95708c77..771dcb2c 100644 --- a/tools/dbus-launch.1 +++ b/tools/dbus-launch.1 @@ -7,7 +7,7 @@ dbus-launch \- Utility to start a message bus from a shell script .SH SYNOPSIS .PP -.B dbus-launch [\-\-version] [\-\-sh-syntax] [\-\-csh-syntax] [\-\-auto-syntax] [\-\-exit-with-session] [PROGRAM] [ARGS...] +.B dbus-launch [\-\-version] [\-\-sh-syntax] [\-\-csh-syntax] [\-\-auto-syntax] [\-\-exit-with-session] [\-\-config-file=FILENAME] [PROGRAM] [ARGS...] .SH DESCRIPTION @@ -25,15 +25,18 @@ will then set the appropriate environment variables and execute the specified program, with the specified arguments. See below for examples. -Finally, you may use the \-\-auto-syntax command to cause -\fIdbus-launch\fP to emit shell code to set up the environment. This -is useful in shell scripts. With this option, \fIdbus-launch\fP looks -at the value of the SHELL environment variable to determine which -shell syntax should be used. If SHELL ends in "csh", then -csh-compatible code is emitted; otherwise Bourne shell code is -emitted. Instead of passing \-\-auto-syntax, you may explicity -specify a particular one by using \-\-sh-syntax for Bourne syntax, or -\-\-csh-syntax for csh syntax. +Finally, you may use the \-\-sh-syntax, \-\-csh-syntax, or +\-\-auto-syntax commands to cause \fIdbus-launch\fP to emit shell code +to set up the environment. This is useful in shell scripts. + +With the \-\-auto-syntax option, \fIdbus-launch\fP looks at the value +of the SHELL environment variable to determine which shell syntax +should be used. If SHELL ends in "csh", then csh-compatible code is +emitted; otherwise Bourne shell code is emitted. Instead of passing +\-\-auto-syntax, you may explicity specify a particular one by using +\-\-sh-syntax for Bourne syntax, or \-\-csh-syntax for csh syntax. +In scripts, it's more robust to avoid \-\-auto-syntax and you hopefully +know which shell your script is written in. .PP See http://www.freedesktop.org/software/dbus/ for more information @@ -47,7 +50,7 @@ sh-compatible shell to start the per-session bus daemon: ## test for an existing bus daemon, just to be safe if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then ## if not found, launch a new one - eval `dbus-launch --auto-syntax --exit-with-session` + eval `dbus-launch --sh-syntax --exit-with-session` echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS" fi @@ -62,17 +65,22 @@ program, like so: dbus-launch gnome-session .fi -The above would likely be appropriate for ~/.xsession. +The above would likely be appropriate for ~/.xsession or ~/.Xclients. .SH OPTIONS The following options are supported: .TP .I "--auto-syntax" -Attempt to detect the shell in use, and emit compatible code. +Choose \-\-csh-syntax or \-\-sh-syntax based on the SHELL environment variable. + +.TP +.I "--config-file=FILENAME" +Pass \-\-config-file=FILENAME to the bus daemon, instead of passing it +the \-\-session argument. See the man page for dbus-daemon-1 .TP .I "--csh-syntax" -Emit csh compatible code. +Emit csh compatible code to set up environment variables. .TP .I "--exit-with-session" @@ -83,7 +91,7 @@ it kills the message bus daemon. .TP .I "--sh-syntax" -Emit Bourne-shell compatible code. +Emit Bourne-shell compatible code to set up environment variables. .TP .I "--version" diff --git a/tools/dbus-launch.c b/tools/dbus-launch.c index 3b429013..dc9dad45 100644 --- a/tools/dbus-launch.c +++ b/tools/dbus-launch.c @@ -593,8 +593,10 @@ main (int argc, char **argv) int bus_pid_to_launcher_pipe[2]; int bus_pid_to_babysitter_pipe[2]; int bus_address_to_launcher_pipe[2]; + char *config_file; exit_with_session = FALSE; + config_file = NULL; prev_arg = NULL; i = 1; @@ -618,8 +620,34 @@ main (int argc, char **argv) version (); else if (strcmp (arg, "--exit-with-session") == 0) exit_with_session = TRUE; - else if (runprog) - usage (1); + else if (strstr (arg, "--config-file=") == arg) + { + const char *file; + + if (config_file != NULL) + { + fprintf (stderr, "--config-file given twice\n"); + exit (1); + } + + file = strchr (arg, '='); + ++file; + + config_file = xstrdup (file); + } + else if (prev_arg && + strcmp (prev_arg, "--config-file") == 0) + { + if (config_file != NULL) + { + fprintf (stderr, "--config-file given twice\n"); + exit (1); + } + + config_file = xstrdup (arg); + } + else if (strcmp (arg, "--config-file") == 0) + ; /* wait for next arg */ else { runprog = arg; @@ -736,9 +764,10 @@ main (int argc, char **argv) execlp ("dbus-daemon-1", "dbus-daemon-1", "--fork", - "--session", "--print-pid", write_pid_fd_as_string, "--print-address", write_address_fd_as_string, + config_file ? "--config-file" : "--session", + config_file, /* has to be last in this varargs list */ NULL); fprintf (stderr, |