mirror of
https://github.com/systemd/systemd.git
synced 2025-03-22 06:50:18 +03:00
vala: take command line args to control whether to talk to system or session systemd
This commit is contained in:
parent
5e177ece17
commit
edddf4ff88
@ -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();
|
||||
|
@ -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",
|
||||
|
Loading…
x
Reference in New Issue
Block a user