summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-11-12 15:03:21 +0000
committerVivien Kraus <vivien@planete-kraus.eu>2021-11-12 17:47:24 +0000
commitfdfc737ce34840a768c98aa370725dbe650a6a3c (patch)
tree77430f7155e9ace134e9a16c94ddf3fa653b7cf5 /src
parent2cbef4cfeb856327bb2794963ac99730d190bead (diff)
Client: Add a hello world Vala program.
Diffstat (limited to 'src')
-rw-r--r--src/client/Makefile.am20
-rw-r--r--src/client/libwebidoidc-client.c17
-rw-r--r--src/scm/webid-oidc/client/reverse-stubs.scm4
-rw-r--r--src/ui/Makefile.am16
-rw-r--r--src/ui/main.vala31
5 files changed, 70 insertions, 18 deletions
diff --git a/src/client/Makefile.am b/src/client/Makefile.am
index f447adf..60035de 100644
--- a/src/client/Makefile.am
+++ b/src/client/Makefile.am
@@ -40,18 +40,22 @@ EXTRA_DIST += %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
CLEANFILES += %reldir%/vapi-generation
-%reldir%/Disfluid-0.gir: %reldir%/Disfluid-0.h
+AM_VALAFLAGS += \
+ --vapidir=$(abs_top_srcdir)/%reldir% \
+ --pkg=disfluid-0
+
+$(srcdir)/%reldir%/Disfluid-0.gir: %reldir%/Disfluid-0.h
$(AM_V_GEN) $(G_IR_SCANNER) -n Disfluid --nsversion=0 --header-only --warn-all -o $@-t $<
- @mv $@-t $(srcdir)/$@
+ @mv $@-t $@
-%reldir%/Disfluid-0.typelib: %reldir%/Disfluid-0.gir
- $(AM_V_GEN) $(G_IR_COMPILER) -o $@-t --shared-library=libwebidoidc $(srcdir)/$<
- @mv $@-t $(srcdir)/$@
+$(srcdir)/%reldir%/Disfluid-0.typelib: %reldir%/Disfluid-0.gir
+ $(AM_V_GEN) $(G_IR_COMPILER) -o $@-t --shared-library=libwebidoidc $<
+ @mv $@-t $@
-%reldir%/disfluid-0.vapi: %reldir%/Disfluid-0.gir %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
+$(srcdir)/%reldir%/disfluid-0.vapi: %reldir%/Disfluid-0.gir %reldir%/Disfluid-0.metadata %reldir%/disfluid-0-custom.vala
@rm -rf %reldir%/vapi-generation
@mkdir %reldir%/vapi-generation
- $(AM_V_GEN) $(VAPIGEN) --library disfluid-0 -d %reldir%/vapi-generation $(srcdir)/$< --metadatadir=$(srcdir)/%reldir% $(srcdir)/%reldir%/disfluid-0-custom.vala
+ $(AM_V_GEN) $(VAPIGEN) --library disfluid-0 -d %reldir%/vapi-generation $< --metadatadir=$(srcdir)/%reldir% $(srcdir)/%reldir%/disfluid-0-custom.vala
@mv %reldir%/vapi-generation/disfluid-0.vapi $@-t
@rmdir %reldir%/vapi-generation
- @mv $@-t $(srcdir)/$@
+ @mv $@-t $@
diff --git a/src/client/libwebidoidc-client.c b/src/client/libwebidoidc-client.c
index 46deecc..4937135 100644
--- a/src/client/libwebidoidc-client.c
+++ b/src/client/libwebidoidc-client.c
@@ -22,8 +22,8 @@ struct DisfluidApi
{
SCM scm_make_client;
SCM scm_get_client_id;
- SCM scm_get_key_pair;
- SCM scm_get_redirect_uri;
+ SCM scm_get_client_jwk;
+ SCM scm_get_client_redirect_uri;
SCM scm_make_account_full;
SCM scm_get_account_subject;
SCM scm_get_account_issuer;
@@ -49,10 +49,11 @@ inner_guile (void *data)
scm_c_public_ref ("webid-oidc client reverse-stubs", "make-client");
api.scm_get_client_id =
scm_c_public_ref ("webid-oidc client reverse-stubs", "get-client-id");
- api.scm_get_key_pair =
- scm_c_public_ref ("webid-oidc client reverse-stubs", "get-key-pair");
- api.scm_get_redirect_uri =
- scm_c_public_ref ("webid-oidc client reverse-stubs", "get-redirect-uri");
+ api.scm_get_client_jwk =
+ scm_c_public_ref ("webid-oidc client reverse-stubs", "get-client-jwk");
+ api.scm_get_client_redirect_uri =
+ scm_c_public_ref ("webid-oidc client reverse-stubs",
+ "get-client-redirect-uri");
api.scm_make_account_full =
scm_c_public_ref ("webid-oidc client reverse-stubs", "make-account-full");
api.scm_get_account_subject =
@@ -167,7 +168,7 @@ disfluid_client_get_key_pair (const struct DisfluidClient *client,
const struct DisfluidApi *api,
size_t start, size_t max, char *jwk)
{
- SCM scm_jwk = scm_call_1 (api->scm_get_key_pair, client->object);
+ SCM scm_jwk = scm_call_1 (api->scm_get_client_jwk, client->object);
return copy_scm_string (scm_jwk, start, max, jwk);
}
@@ -177,7 +178,7 @@ disfluid_client_get_redirect_uri (const struct DisfluidClient *client,
size_t start, size_t max,
char *redirect_uri)
{
- SCM scm_uri = scm_call_1 (api->scm_get_redirect_uri, client->object);
+ SCM scm_uri = scm_call_1 (api->scm_get_client_redirect_uri, client->object);
return copy_scm_string (scm_uri, start, max, redirect_uri);
}
diff --git a/src/scm/webid-oidc/client/reverse-stubs.scm b/src/scm/webid-oidc/client/reverse-stubs.scm
index 5a68525..641ee84 100644
--- a/src/scm/webid-oidc/client/reverse-stubs.scm
+++ b/src/scm/webid-oidc/client/reverse-stubs.scm
@@ -56,10 +56,10 @@
(define (get-client-id client)
(uri->string (client-id client)))
-(define (get-key-pair client)
+(define (get-client-jwk client)
(stubs:scm->json-string (key->jwk (key-pair client))))
-(define (get-redirect-uri client)
+(define (get-client-redirect-uri client)
(uri->string (redirect-uri client)))
(define (make-account-full subject issuer key-pair id-token-header id-token access-token refresh-token)
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index 0d04326..94e96d2 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -27,3 +27,19 @@ dist_uipkgdata_DATA = \
%reldir%/loading-page.glade \
%reldir%/new-page.glade \
%reldir%/updated-page.glade
+
+libexec_PROGRAMS += %reldir%/disfluid-gui
+
+%canon_reldir%_disfluid_gui_SOURCES = \
+ %reldir%/main.vala
+
+%canon_reldir%_disfluid_gui_CFLAGS = \
+ $(AM_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(GOBJECT_CFLAGS) \
+ -include config.h
+
+%canon_reldir%_disfluid_gui_LDADD = \
+ $(GLIB_LIBS) \
+ $(GOBJECT_LIBS) \
+ $(lib_LTLIBRARIES)
diff --git a/src/ui/main.vala b/src/ui/main.vala
new file mode 100644
index 0000000..e15710d
--- /dev/null
+++ b/src/ui/main.vala
@@ -0,0 +1,31 @@
+// disfluid, implementation of the Solid specification
+// Copyright (C) 2021 Vivien Kraus
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+namespace Disfluid {
+ class Main: GLib.Object {
+ public static int main (string[] args) {
+ int return_code = 1;
+ Disfluid.Api.init ((api) => {
+ foreach (var arg in args) {
+ stdout.printf ("%s\n", arg);
+ }
+ return_code = 0;
+ return null;
+ });
+ return return_code;
+ }
+ }
+} \ No newline at end of file