From 5303f650e34763817d7eeb1d3ba774bdec3e1a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Thu, 22 Feb 2024 17:32:07 +0100 Subject: New upstream version 0.32.6 --- src/authenticator.vala | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/authenticator.vala (limited to 'src/authenticator.vala') diff --git a/src/authenticator.vala b/src/authenticator.vala new file mode 100644 index 0000000..55f3321 --- /dev/null +++ b/src/authenticator.vala @@ -0,0 +1,40 @@ +// SPDX-License-Identifer: LGPL-2.1-or-later +// SPDX-FileCopyrightText: 2022 Jens Georg + +[DBus(name = "org.gnome.Shotwell.Authenticate")] +public interface AuthenticationReceiver : Object { + public abstract void callback(string url) throws DBusError, IOError; +} + +static int main(string[] args) { + AuthenticationReceiver receiver; + + if (args.length != 2) { + print("Usage: %s \n", args[0]); + return 1; + } + + try { + var uri = Uri.parse(args[1], UriFlags.NONE); + var scheme = uri.get_scheme(); + + if (scheme != "shotwell-oauth2" && !scheme.has_prefix("com.googleusercontent.apps")) { + critical("Invalid scheme in callback URI \"%s\"", args[1]); + return 1; + } + } catch (Error e) { + critical("Invalid uri: \"%s\": %s", args[1], e.message); + return 1; + } + + try { + receiver = Bus.get_proxy_sync (BusType.SESSION, "org.gnome.Shotwell", "/org/gnome/Shotwell"); + receiver.callback(args[1]); + } catch (Error e) { + critical("Could not connect to remote shotwell instance: %s", e.message); + + return 1; + } + + return 0; +} \ No newline at end of file -- cgit v1.2.3