summaryrefslogtreecommitdiff
path: root/src/authenticator.vala
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-02-22 17:32:07 +0100
committerJörg Frings-Fürst <debian@jff.email>2024-02-22 17:32:07 +0100
commit5303f650e34763817d7eeb1d3ba774bdec3e1a38 (patch)
tree8ad5028940b931abe0eee441e12357f970c656de /src/authenticator.vala
parentf5a0cee8ccecc7b6c6c2d8e9fb6f6eecd53531fe (diff)
New upstream version 0.32.6upstream/0.32.6upstream
Diffstat (limited to 'src/authenticator.vala')
-rw-r--r--src/authenticator.vala40
1 files changed, 40 insertions, 0 deletions
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 <mail@jensge.org>
+
+[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 <callback-uri>\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