On Fri, Apr 1, 2022 at 12:46 AM Christoph Lohmann <2...@r-36.net> wrote:

> ---
>  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
> @@ -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)
> @@ -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
> @@ -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
> @@ -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
> @@ -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>
> @@ -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.1
>
>
>
Also add Microsoft to LICENSE and change it to "All rights reserved".

Reply via email to