summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-04-07 16:23:08 +0200
committerLennart Poettering <lennart@poettering.net>2010-04-07 16:23:08 +0200
commitedddf4ff8841951cdbb698f72a3f4f8554ce8d33 (patch)
treeb20fbbc90f1c361a7cdafc35da68ce5417ea1395
parent5e177ece179032d522d4058d21b885d49e59f5d5 (diff)
vala: take command line args to control whether to talk to system or session systemd
-rw-r--r--systemadm.vala16
-rw-r--r--systemctl.vala13
2 files changed, 21 insertions, 8 deletions
diff --git a/systemadm.vala b/systemadm.vala
index bc4f9403e6..c761511c1c 100644
--- a/systemadm.vala
+++ b/systemadm.vala
@@ -22,6 +22,8 @@ using GLib;
using DBus;
using Pango;
+static bool session = false;
+
public class LeftLabel : Label {
public LeftLabel(string? text = null) {
if (text != null)
@@ -96,7 +98,6 @@ public class MainWindow : Window {
notebook.append_page(job_vbox, new Label("Jobs"));
job_vbox.set_border_width(12);
-
unit_model = new ListStore(6, typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Unit));
job_model = new ListStore(5, typeof(string), typeof(string), typeof(string), typeof(string), typeof(Job));
@@ -210,7 +211,7 @@ public class MainWindow : Window {
bbox.pack_start(cancel_button, false, true, 0);
- bus = Bus.get(BusType.SESSION);
+ bus = Bus.get(session ? BusType.SESSION : BusType.SYSTEM);
manager = bus.get_object(
"org.freedesktop.systemd1",
@@ -514,14 +515,23 @@ public class MainWindow : Window {
}
}
+static const OptionEntry entries[] = {
+ { "session", 0, 0, OptionArg.NONE, out session, "Connect to session bus", null },
+ { "system", 0, OptionFlags.REVERSE, OptionArg.NONE, out session, "Connect to system bus", null },
+ { null }
+};
+
int main (string[] args) {
- Gtk.init(ref args);
try {
+ Gtk.init_with_args(ref args, "[OPTION...]", entries, "systemadm");
+
MainWindow window = new MainWindow();
window.show_all();
} catch (DBus.Error e) {
message("%s", e.message);
+ } catch (GLib.Error e) {
+ message("%s", e.message);
}
Gtk.main();
diff --git a/systemctl.vala b/systemctl.vala
index fbcdefe98d..4f017e02e7 100644
--- a/systemctl.vala
+++ b/systemctl.vala
@@ -23,6 +23,7 @@ using GLib;
static string type = null;
static bool all = false;
static bool replace = false;
+static bool session = false;
public static int job_info_compare(void* key1, void* key2) {
Manager.JobInfo *j1 = (Manager.JobInfo*) key1;
@@ -59,15 +60,17 @@ public void on_job_removed(uint32 id, ObjectPath path) {
}
static const OptionEntry entries[] = {
- { "type", 't', 0, OptionArg.STRING, out type, "List only particular type of units", "TYPE" },
- { "all", 'a', 0, OptionArg.NONE, out all, "Show all units, including dead ones", null },
- { "replace", 0, 0, OptionArg.NONE, out replace, "When installing a new job, replace existing conflicting ones.", null },
+ { "type", 't', 0, OptionArg.STRING, out type, "List only particular type of units", "TYPE" },
+ { "all", 'a', 0, OptionArg.NONE, out all, "Show all units, including dead ones", null },
+ { "replace", 0, 0, OptionArg.NONE, out replace, "When installing a new job, replace existing conflicting ones", null },
+ { "session", 0, 0, OptionArg.NONE, out session, "Connect to session bus", null },
+ { "system", 0, OptionFlags.REVERSE, OptionArg.NONE, out session, "Connect to system bus", null },
{ null }
};
int main (string[] args) {
- OptionContext context = new OptionContext(" [COMMAND [ARGUMENT...]]");
+ OptionContext context = new OptionContext("[OPTION...] [COMMAND [ARGUMENT...]]");
context.add_main_entries(entries, null);
context.set_description(
"Commands:\n" +
@@ -89,7 +92,7 @@ int main (string[] args) {
}
try {
- Connection bus = Bus.get(BusType.SESSION);
+ Connection bus = Bus.get(session ? BusType.SESSION : BusType.SYSTEM);
Manager manager = bus.get_object (
"org.freedesktop.systemd1",