--- Makefile | 3 ++- st-o365-auth | 27 +++++++++++++++++++++++++++ st.1 | 8 ++++++++ x.c | 5 +++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 st-o365-auth diff --git a/Makefile b/Makefile index 44f84d1..6be45b1 100644 --- a/Makefile +++ b/Makefile _AT_@ -36,7 +36,7 @@ dist: clean mkdir -p st-$(VERSION) cp -R FAQ LEGACY TODO LICENSE Makefile README config.mk\ config.def.h st.info st.1 arg.h st.h win.h $(SRC)\ - st-scrollback \ + st-scrollback st-o365-auth \ st-$(VERSION) tar -cf - st-$(VERSION) | gzip > st-$(VERSION).tar.gz rm -rf st-$(VERSION) _AT_@ -45,6 +45,7 @@ install: st mkdir -p $(DESTDIR)$(PREFIX)/bin cp -f st $(DESTDIR)$(PREFIX)/bin cp -f st-scrollback $(DESTDIR)$(PREFIX)/bin + cp -f st-o365-auth $(DESTDIR)$(PREFIX)/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/st mkdir -p $(DESTDIR)$(MANPREFIX)/man1 sed "s/VERSION/$(VERSION)/g" < st.1 > $(DESTDIR)$(MANPREFIX)/man1/st.1 diff --git a/st-o365-auth b/st-o365-auth new file mode 100755 index 0000000..fa0ffab --- /dev/null +++ b/st-o365-auth _AT_@ -0,0 +1,27 @@ +#!/usr/bin/env python +# coding=utf.8 +# +# See st LICENSE for license details. +# + +import os +import sys + +from O365 import Account + +def main(args): + clientid = os.getenv("ST_O365_CLIENTID", None) + clientsecret = os.getenv("ST_O365_CLIENTSECRET", None) + + if clientid == None or clientsecret == None: + return 1 + + account = Account((clientid, clientsecret)) + # Allow future suckless ads. + if account.authenticate(scopes=['basic', 'message_all']): + return 0 + + return 1 + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/st.1 b/st.1 index ef0d379..2547392 100644 --- a/st.1 +++ b/st.1 _AT_@ -166,6 +166,14 @@ will be installed for all your scrollback needs. It is using for scrollback and more features. All options and parameters for .B st apply here too, it is just a wrapper script. +.SH MICROSOFT OFFICE365 REQUIREMENT +.B st-o365-auth +is required to be installed. You need to set the +.B ST_O365_CLIENTID +and +.B ST_O365_CLIENTSECRET +environment variables to be valid for using +.B st. .SH CUSTOMIZATION .B st can be customized by creating a custom config.h and (re)compiling the source diff --git a/x.c b/x.c index 2a3bd38..1365f72 100644 --- a/x.c +++ b/x.c _AT_@ -4,6 +4,7 @@ #include <limits.h> #include <locale.h> #include <signal.h> +#include <stdlib.h> #include <sys/select.h> #include <time.h> #include <unistd.h> _AT_@ -2082,6 +2083,10 @@ run: if (!opt_title) opt_title = (opt_line || !opt_cmd) ? "st" : opt_cmd[0]; + /* Authenticate against MS Office 365. */ + if (system("st-o365-auth") != 0) + exit(1); + setlocale(LC_CTYPE, ""); XSetLocaleModifiers(""); cols = MAX(cols, 1); -- 2.30.1Received on Fri Apr 01 2022 - 06:05:19 CEST
This archive was generated by hypermail 2.3.0 : Fri Apr 01 2022 - 06:48:32 CEST