From b57d61b861a9bb9106ebe63745803256fdce12c1 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Fri, 7 Aug 2020 21:46:37 -0400 Subject: [PATCH] add restore option to cli --- src/cli.vala | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/cli.vala b/src/cli.vala index efb156a..96616b2 100644 --- a/src/cli.vala +++ b/src/cli.vala @@ -95,6 +95,11 @@ namespace TUFManager { */ private bool invalid = false; + /** + * This flag is set if the user wants to restore saved settings + */ + private bool restore = false; + /** * This flag is set if the user wants to see help */ @@ -205,6 +210,10 @@ namespace TUFManager { help = true; check_second_argument (args); break; + case "restore": + restore = true; + check_second_argument (args); + break; case "info": info = true; check_second_argument (args); @@ -324,6 +333,17 @@ namespace TUFManager { release_cli (); return 1; } + else if (restore) { + if (settings.get_boolean ("restore")) { + restore_settings (); + return 0; + } + else { + warning (_ ("Restore settings is currently disabled, please enable it to use this feature!")); + release_cli (); + return 1; + } + } else if (version) { command_line.print (_ ("Version: ") + VERSION + "\n"); release_cli (); @@ -492,6 +512,79 @@ namespace TUFManager { return 0; } + private void restore_settings () { +#if ALWAYS_AUTHENTICATED + var mode = settings.get_int ("fan-mode"); + if (mode >= 0 && mode <= 2) { + if (get_fan_mode () != mode) { + set_fan_mode (mode); + } + } + + mode = settings.get_int ("keyboard-mode"); + if (mode >= 0 && mode <= 3) { + if (get_keyboard_mode () != mode) { + set_keyboard_mode (mode); + } + } + + var speed = settings.get_int ("keyboard-speed"); + if (speed >= 0 && speed <= 2) { + if (get_keyboard_speed () != speed) { + set_keyboard_speed (speed); + } + } + + tuf_server.procedure_finished.connect (release_cli); + var color = settings.get_string ("keyboard-color"); + var rgba = Gdk.RGBA (); + rgba.parse (color); + if (!get_keyboard_color ().equal (rgba)) { + set_keyboard_color (rgba); + } +#else + try { + pkttyagent = new Subprocess.newv ({"pkttyagent"}, SubprocessFlags.NONE); + + Timeout.add_seconds (10, () => { + tuf_server.procedure_finished.connect (release_cli); + var mode = settings.get_int ("fan-mode"); + if (mode >= 0 && mode <= 2) { + if (get_fan_mode () != mode) { + set_fan_mode (mode); + } + } + + mode = settings.get_int ("keyboard-mode"); + if (mode >= 0 && mode <= 3) { + if (get_keyboard_mode () != mode) { + set_keyboard_mode (mode); + } + } + + var speed = settings.get_int ("keyboard-speed"); + if (speed >= 0 && speed <= 2) { + if (get_keyboard_speed () != speed) { + set_keyboard_speed (speed); + } + } + + tuf_server.procedure_finished.connect (release_cli); + var color = settings.get_string ("keyboard-color"); + var rgba = Gdk.RGBA (); + rgba.parse (color); + if (!get_keyboard_color ().equal (rgba)) { + set_keyboard_color (rgba); + } + return false; + }); + } + catch (Error e) { + warning (e.message); + } +#endif + } + /** * If there are more arguments than there should be we need to invalidate * TODO: Change this to something better later @@ -517,6 +610,7 @@ namespace TUFManager { command_line.print (" lighting [static, breath, cycle, stobe] " + _ ("Set the keyboard lighting\n")); command_line.print (" speed [slow, medium, fast] " + _ ("Set the keyboard lighting speed\n")); command_line.print (" color [\"#XXXXXX\"] " + _ ("Set the keyboard color\n")); + command_line.print (" restore " + _ ("Restore saved settings\n\n")); command_line.print (" info " + _ ("Show the current config\n\n")); command_line.print (_ ("Examples:\n")); command_line.print (" " + _ ("Silence fan:") + " tuf-cli fan silent\n");