From 3bf25783a29219d14889ba251cd7b42b3974c287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sko=C5=99epa?= <jakub@skorepa.info> Date: Thu, 27 Aug 2015 18:57:24 +0200 Subject: [PATCH] Print server version on interactive start too + Fix history saving for ^D --- .../src/commands/InteractiveCommand.vala | 4 +++- dserial-cli/src/dbus-serial-client.vala | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/dserial-cli/src/commands/InteractiveCommand.vala b/dserial-cli/src/commands/InteractiveCommand.vala index b3d1ef3..872080f 100644 --- a/dserial-cli/src/commands/InteractiveCommand.vala +++ b/dserial-cli/src/commands/InteractiveCommand.vala @@ -75,7 +75,7 @@ public class InteractiveCommand : Object, Command state.interactive = true; stdout.printf("dserial: Serial communication program\n"); stdout.printf("License: GPL3+\n"); - stdout.printf("Version: 0.5\n"); + stdout.printf("Version: 0.5.1\t\t\tServer version: %s\n",Serial.get_server_version()); stdout.printf("Write help for help\n"); Readline.History.read(Environment.get_variable("HOME")+"/.dserial-history"); Readline.attempted_completion_function = readline_completion; @@ -87,6 +87,8 @@ public class InteractiveCommand : Object, Command if (line == null) { stdout.printf("\n"); run_func(state,{"exit"}); + Readline.History.write(Environment.get_variable("HOME")+"/.dserial-history"); + Readline.History.truncate_file(Environment.get_variable("HOME")+"/.dserial-history",256); return 0; } Readline.History.add(line); diff --git a/dserial-cli/src/dbus-serial-client.vala b/dserial-cli/src/dbus-serial-client.vala index 8be8bb9..68995d8 100644 --- a/dserial-cli/src/dbus-serial-client.vala +++ b/dserial-cli/src/dbus-serial-client.vala @@ -112,6 +112,25 @@ public string[] get_ports() { return {}; } +/*===================================== + * Get server version + *=====================================*/ +public string get_server_version() { + if(DEBUG_OUTPUT) stdout.printf("get_server_version\n"); + try { + return GLib.Bus.get_sync(BusType.SESSION).call_sync( + "info.skorepa.DSerial1", + "/controller", + "org.freedesktop.DBus.Properties", + "Get", + new Variant("(ss)","info.skorepa.DSerial1.controller", "ServerVersion"), + null, + DBusCallFlags.NONE, + 1000).get_child_value(0).get_variant().get_string(); + }catch(Error e) {} + return "UNKNOWN"; +} + /*===================================== * Return object name for file name *=====================================*/ -- GitLab