From 08dcdedf85dae3e464ef9a34cbd1c0b67659b463 Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Fri, 17 Dec 2021 12:23:06 +0100
Subject: [PATCH] [scripts.settings] Be more flexible with group discovery

---
 bob/devtools/scripts/settings.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/bob/devtools/scripts/settings.py b/bob/devtools/scripts/settings.py
index 4ddb3c49..feeb4113 100644
--- a/bob/devtools/scripts/settings.py
+++ b/bob/devtools/scripts/settings.py
@@ -20,7 +20,7 @@ logger = get_logger(__name__)
 def _change_settings(project, info, dry_run):
     """Updates the project settings using ``info``"""
 
-    name = f"{project.namespace['name']}/{project.name}"
+    name = f"{project.namespace['full_path']}/{project.name}"
     echo_normal(f"Changing {name}...")
 
     if info.get("archive") is not None:
@@ -76,6 +76,12 @@ Examples:
     type=str,
     help="Set this to update the project description",
 )
+@click.option(
+    "-g",
+    "--group/--no-group",
+    default=False,
+    help="If set, consider the the provided name as a group name",
+)
 @click.option(
     "-A",
     "--archive/--unarchive",
@@ -92,7 +98,7 @@ Examples:
 )
 @verbosity_option()
 @bdt.raise_on_error
-def settings(projects, avatar, description, archive, dry_run):
+def settings(projects, avatar, description, group, archive, dry_run):
     """Updates project settings"""
 
     # if we are in a dry-run mode, let's let it be known
@@ -105,12 +111,12 @@ def settings(projects, avatar, description, archive, dry_run):
 
     for target in projects:
 
-        if "/" in target:  # it is a specific project
-            gl_projects.append(_get_project(gl, target))
-
-        elif os.path.exists(target):  # it is a file with project names
+        if os.path.exists(target):  # it is a file with project names
             gl_projects += _get_projects_from_file(gl, target)
 
+        if not group:  # it is a specific project
+            gl_projects.append(_get_project(gl, target))
+
         else:  # it is a group - get all projects
             gl_projects += _get_projects_from_group(gl, target)
 
-- 
GitLab