diff --git a/cli/ensure_vars_main.py b/cli/ensure_vars_main.py new file mode 100644 index 00000000..6d0239b8 --- /dev/null +++ b/cli/ensure_vars_main.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +import argparse +import os +from pathlib import Path + +def main(): + parser = argparse.ArgumentParser( + description="Generate (or preview) missing vars/main.yml for all roles with a given prefix" + ) + parser.add_argument( + "--prefix", + required=True, + help="Role-name prefix to scan for (e.g. 'desk-')" + ) + parser.add_argument( + "--preview", + action="store_true", + help="If set, only show what would be done without making changes" + ) + args = parser.parse_args() + prefix = args.prefix + preview = args.preview + + # Locate roles/ directory relative to this script + script_dir = Path(__file__).resolve().parent + roles_dir = (script_dir / "../roles").resolve() + + if not roles_dir.is_dir(): + print(f"Error: roles directory not found at {roles_dir}") + return + + missing = [] + for role in sorted(roles_dir.iterdir()): + if not role.is_dir(): + continue + if not role.name.startswith(prefix): + continue + + vars_dir = role / "vars" + vars_main = vars_dir / "main.yml" + if not vars_main.exists(): + missing.append((role.name, vars_main)) + + if not missing: + print(f"No missing vars/main.yml files found for prefix '{prefix}'") + return + + for role_name, vars_main in missing: + app_id = role_name[len(prefix):] + content = f"application_id: \"{app_id}\"\n" + + if preview: + print(f"Would create: {vars_main}") + print(f"With content:\n{content}") + else: + # ensure directory exists + vars_main.parent.mkdir(parents=True, exist_ok=True) + # write file + with open(vars_main, "w") as f: + f.write(content) + print(f"Created {vars_main}") + +if __name__ == "__main__": + main() diff --git a/roles/util-desk-browser-chromium/README.md b/roles/desk-chromium/README.md similarity index 100% rename from roles/util-desk-browser-chromium/README.md rename to roles/desk-chromium/README.md diff --git a/roles/util-desk-browser-chromium/meta/main.yml b/roles/desk-chromium/meta/main.yml similarity index 100% rename from roles/util-desk-browser-chromium/meta/main.yml rename to roles/desk-chromium/meta/main.yml diff --git a/roles/util-desk-browser-chromium/tasks/main.yml b/roles/desk-chromium/tasks/main.yml similarity index 100% rename from roles/util-desk-browser-chromium/tasks/main.yml rename to roles/desk-chromium/tasks/main.yml diff --git a/roles/util-desk-browser-chromium/templates/configuration.yml.j2 b/roles/desk-chromium/templates/configuration.yml.j2 similarity index 100% rename from roles/util-desk-browser-chromium/templates/configuration.yml.j2 rename to roles/desk-chromium/templates/configuration.yml.j2 diff --git a/roles/util-desk-browser-chromium/templates/extensions_policy.json.j2 b/roles/desk-chromium/templates/extensions_policy.json.j2 similarity index 100% rename from roles/util-desk-browser-chromium/templates/extensions_policy.json.j2 rename to roles/desk-chromium/templates/extensions_policy.json.j2 diff --git a/roles/util-desk-browser-chromium/vars/main.yml b/roles/desk-chromium/vars/main.yml similarity index 100% rename from roles/util-desk-browser-chromium/vars/main.yml rename to roles/desk-chromium/vars/main.yml diff --git a/roles/util-desk-browser-firefox/README.md b/roles/desk-firefox/README.md similarity index 100% rename from roles/util-desk-browser-firefox/README.md rename to roles/desk-firefox/README.md diff --git a/roles/util-desk-browser-firefox/config/main.yml b/roles/desk-firefox/config/main.yml similarity index 100% rename from roles/util-desk-browser-firefox/config/main.yml rename to roles/desk-firefox/config/main.yml diff --git a/roles/util-desk-browser-firefox/meta/main.yml b/roles/desk-firefox/meta/main.yml similarity index 94% rename from roles/util-desk-browser-firefox/meta/main.yml rename to roles/desk-firefox/meta/main.yml index add1d90d..6918e987 100644 --- a/roles/util-desk-browser-firefox/meta/main.yml +++ b/roles/desk-firefox/meta/main.yml @@ -14,7 +14,7 @@ galaxy_info: - browser repository: "https://github.com/kevinveenbirkenbach/cymais" issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues" - documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/util-desk-browser-firefox" + documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/desk-firefox" min_ansible_version: "2.9" platforms: - name: Archlinux diff --git a/roles/util-desk-browser-firefox/meta/main.yml b/roles/desk-firefox/meta/main.yml similarity index 100% rename from roles/util-desk-browser-firefox/meta/main.yml rename to roles/desk-firefox/meta/main.yml diff --git a/roles/util-desk-browser-firefox/tasks/main.yml b/roles/desk-firefox/tasks/main.yml similarity index 100% rename from roles/util-desk-browser-firefox/tasks/main.yml rename to roles/desk-firefox/tasks/main.yml diff --git a/roles/util-desk-browser-firefox/templates/policies.json.j2 b/roles/desk-firefox/templates/policies.json.j2 similarity index 100% rename from roles/util-desk-browser-firefox/templates/policies.json.j2 rename to roles/desk-firefox/templates/policies.json.j2 diff --git a/roles/util-desk-browser-firefox/vars/main.yml b/roles/desk-firefox/vars/main.yml similarity index 100% rename from roles/util-desk-browser-firefox/vars/main.yml rename to roles/desk-firefox/vars/main.yml diff --git a/roles/util-desk-browser/README.md b/roles/util-desk-browser/README.md index 27fe0412..7fd24cf6 100644 --- a/roles/util-desk-browser/README.md +++ b/roles/util-desk-browser/README.md @@ -6,7 +6,7 @@ This Ansible role serves as a wrapper to install and configure multiple browsers ## Overview -The **util-desk-browser** role orchestrates the deployment of two specialized roles: **util-desk-browser-chromium** and **util-desk-browser-firefox**. By executing both roles, it provides a unified solution for browser management, making it easier to maintain a secure and consistent browsing environment across your systems. +The **util-desk-browser** role orchestrates the deployment of two specialized roles: **desk-chromium** and **desk-firefox**. By executing both roles, it provides a unified solution for browser management, making it easier to maintain a secure and consistent browsing environment across your systems. ## Purpose diff --git a/roles/util-desk-browser/meta/main.yml b/roles/util-desk-browser/meta/main.yml index 2784c05d..225bec87 100644 --- a/roles/util-desk-browser/meta/main.yml +++ b/roles/util-desk-browser/meta/main.yml @@ -34,5 +34,5 @@ galaxy_info: issue_tracker_url: https://s.veen.world/cymaisissues documentation: https://s.veen.world/cymais dependencies: - - util-desk-browser-chromium - - util-desk-browser-firefox + - desk-chromium + - desk-firefox diff --git a/roles/util-desk-dev-core/README.md b/roles/util-desk-dev-core/README.md index 55bd523f..0412eac9 100644 --- a/roles/util-desk-dev-core/README.md +++ b/roles/util-desk-dev-core/README.md @@ -18,7 +18,7 @@ To reduce setup time and ensure consistency across developer workstations, this - **Installs Visual Studio Code:** A powerful code editor with a wide plugin ecosystem. - **Extensible Design:** Acts as a base layer for more specific development stacks (e.g., web, Python, embedded). -- **Persona Integration:** Extends the `util-gen-administrator` for technical users with a development focus. +- **Persona Integration:** Extends the `util-gen-admin` for technical users with a development focus. ## Credits 📝 diff --git a/roles/util-desk-dev-core/meta/main.yml b/roles/util-desk-dev-core/meta/main.yml index 55fe729d..89f2d8c4 100644 --- a/roles/util-desk-dev-core/meta/main.yml +++ b/roles/util-desk-dev-core/meta/main.yml @@ -24,5 +24,5 @@ galaxy_info: issue_tracker_url: https://s.veen.world/cymaisissues documentation: https://s.veen.world/cymais dependencies: - - util-gen-administrator + - util-gen-admin - pkgmgr \ No newline at end of file diff --git a/roles/util-gen-administrator-network/README.md b/roles/util-gen-admin-network/README.md similarity index 88% rename from roles/util-gen-administrator-network/README.md rename to roles/util-gen-admin-network/README.md index ed9d2c4f..6e5b0151 100644 --- a/roles/util-gen-administrator-network/README.md +++ b/roles/util-gen-admin-network/README.md @@ -8,7 +8,7 @@ Learn more about Linux network tools on the [Arch Wiki - Network Tools](https:// ## Overview -This role enhances the base `util-gen-administrator` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity. +This role enhances the base `util-gen-admin` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity. ## Purpose diff --git a/roles/util-gen-administrator-network/meta/main.yml b/roles/util-gen-admin-network/meta/main.yml similarity index 96% rename from roles/util-gen-administrator-network/meta/main.yml rename to roles/util-gen-admin-network/meta/main.yml index 33ebb7a5..c14d8c6d 100644 --- a/roles/util-gen-administrator-network/meta/main.yml +++ b/roles/util-gen-admin-network/meta/main.yml @@ -23,4 +23,4 @@ galaxy_info: issue_tracker_url: https://s.veen.world/cymaisissues documentation: https://s.veen.world/cymais dependencies: - - util-gen-administrator \ No newline at end of file + - util-gen-admin \ No newline at end of file diff --git a/roles/util-gen-administrator-network/tasks/main.yml b/roles/util-gen-admin-network/tasks/main.yml similarity index 100% rename from roles/util-gen-administrator-network/tasks/main.yml rename to roles/util-gen-admin-network/tasks/main.yml diff --git a/roles/util-gen-administrator/README.md b/roles/util-gen-admin/README.md similarity index 100% rename from roles/util-gen-administrator/README.md rename to roles/util-gen-admin/README.md diff --git a/roles/util-gen-administrator/meta/main.yml b/roles/util-gen-admin/meta/main.yml similarity index 100% rename from roles/util-gen-administrator/meta/main.yml rename to roles/util-gen-admin/meta/main.yml diff --git a/roles/util-gen-administrator/tasks/main.yml b/roles/util-gen-admin/tasks/main.yml similarity index 100% rename from roles/util-gen-administrator/tasks/main.yml rename to roles/util-gen-admin/tasks/main.yml diff --git a/tasks/plays/02_personal-computer.yml b/tasks/plays/02_personal-computer.yml index 863c3957..d7203f4c 100644 --- a/tasks/plays/02_personal-computer.yml +++ b/tasks/plays/02_personal-computer.yml @@ -5,7 +5,7 @@ include_role: name: "{{ item }}" loop: - - util-gen-administrator + - util-gen-admin - drv-non-free - name: util-desk-office-tools diff --git a/tests/integration/test_application_id_consistency.py b/tests/integration/test_application_id_consistency.py index b7639555..db5cf7a9 100644 --- a/tests/integration/test_application_id_consistency.py +++ b/tests/integration/test_application_id_consistency.py @@ -9,7 +9,7 @@ ROLES_DIR = Path(__file__).resolve().parent.parent.parent / "roles" class TestApplicationIdConsistency(unittest.TestCase): def test_application_id_matches_docker_prefix(self): failed_roles = [] - prefixes = ("web-app-", "web-svc-") + prefixes = ("web-app-", "web-svc-", "desk-") for role_path in ROLES_DIR.iterdir(): if not role_path.is_dir():