From 19025939cb0e6add5123f8046ca130decaa9c7e3 Mon Sep 17 00:00:00 2001
From: msimonin <matthieu.simonin@inria.fr>
Date: Wed, 9 Mar 2022 14:54:23 +0100
Subject: [PATCH] Introduce grid5000-auth

---
 grid5000/cli.py | 22 ++++++++++++++++++++++
 setup.cfg       |  1 +
 2 files changed, 23 insertions(+)

diff --git a/grid5000/cli.py b/grid5000/cli.py
index 2c7edda..f553e4d 100644
--- a/grid5000/cli.py
+++ b/grid5000/cli.py
@@ -38,3 +38,25 @@ def main():
     gk = Grid5000.from_yaml(CONF_PATH)
     motd = MOTD % (CONF_PATH, gk.username)
     IPython.embed(header=motd)
+
+
+def auth():
+    import argparse
+    from getpass import getpass
+
+    parser = argparse.ArgumentParser(description=f"Check or create {CONF_PATH}")
+    parser.add_argument("--user", "-u", help="Username on Grid'5000", required=True)
+    args = parser.parse_args()
+
+    path = pathlib.Path(CONF_PATH)
+    if path.exists():
+        print(f"{CONF_PATH} file already exists, not overwriting")
+        return
+    user = args.user
+
+    password = getpass("Grid'5000 password: ")
+    path.write_text("\n".join([
+        f"username: {user}",
+        f"password: {password}"
+    ]))
+    print(f"{CONF_PATH} created successfully")
diff --git a/setup.cfg b/setup.cfg
index de5c834..b31e401 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -33,3 +33,4 @@ exclude =
 [options.entry_points]
 console_scripts =
     grid5000 = grid5000.cli:main
+    grid5000-auth = grid5000.cli:auth
\ No newline at end of file
-- 
GitLab