1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-27 18:55:09 +03:00

vala: take command line args to control whether to talk to system or session systemd

This commit is contained in:
Lennart Poettering 2010-04-07 16:23:08 +02:00
parent 5e177ece17
commit edddf4ff88
2 changed files with 21 additions and 8 deletions

View File

@ -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();

View File

@ -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",