Skip to content

Commit 4e554ad

Browse files
committed
Combines scripts into one The Tool
1 parent 8e4a53c commit 4e554ad

File tree

6 files changed

+236
-207
lines changed

6 files changed

+236
-207
lines changed

.github/workflows/overseer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ jobs:
2424
run: |
2525
uv sync --locked --all-extras
2626
27-
- run: scripts/overseer.sh --github-token ${{ secrets.GITHUB_TOKEN }}
27+
- run: python -m tool inspect --github-token ${{ secrets.GITHUB_TOKEN }}
2828

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# package managers
22
.venv/
3+
**/__pycache__/
4+
.ruff_cache/
5+
36
node_modules/
47

58
# intermediate dirs from our scripts

scripts/overseer.sh

Lines changed: 0 additions & 172 deletions
This file was deleted.

tool/__main__.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env python3
2+
3+
import sys
4+
import argparse
5+
import logging
6+
7+
from rich.logging import RichHandler
8+
9+
from . import cmd_init
10+
from . import cmd_inspect
11+
12+
13+
def main(argv):
14+
parser = argparse.ArgumentParser(
15+
description="""
16+
Overseer is an automation tool within zig-devel.
17+
It should remain autonomous so that the infrastructure
18+
doesn't depend on the CI provider and everything can be done locally.
19+
"""
20+
)
21+
parser.add_argument("--verbose", help="Verbose logging", action="store_true")
22+
23+
subparsers = parser.add_subparsers(required=True, title="Overseer commands")
24+
cmd_init.cli(subparsers)
25+
cmd_inspect.cli(subparsers)
26+
27+
args = parser.parse_args(argv)
28+
29+
logging.basicConfig(
30+
level=logging.INFO,
31+
format="%(message)s",
32+
datefmt="[%X]",
33+
handlers=[RichHandler()],
34+
)
35+
if args.verbose:
36+
logging.basicConfig(level=logging.DEBUG)
37+
38+
args.func(args)
39+
40+
41+
if __name__ == "__main__":
42+
sys.exit(main(sys.argv[1:]))
Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,18 @@
1-
#!/usr/bin/env python3
2-
"""
3-
Creates a new project from a template.
4-
Uses several global dependencies (including zig, reuse, and nvchecker).
5-
"""
6-
7-
import argparse
81
import json
92
import logging
103
import os
11-
import sys
124
from pathlib import Path
135

14-
from plumbum.cmd import cat, sed, zig, git, reuse, nvchecker
6+
from plumbum.cmd import cat, sed, git, reuse, nvchecker
157

168
from rich.console import Console
17-
from rich.logging import RichHandler
9+
10+
console = Console()
1811

1912
GITHUB_ORG = "zig-devel"
2013
GITHUB_REPO = f"{GITHUB_ORG}/.github"
2114
INTERNAL_LICENSE = "0BSD"
2215

23-
console = Console()
24-
2516

2617
def cmd(command):
2718
(returncode, stdout, stderr) = command.run(retcode=None)
@@ -198,6 +189,8 @@ def _SetupLicenses(project_licenses: list[str]):
198189

199190

200191
def _SetupZigPackage(name: str, version: str, git: str, revision: str):
192+
from plumbum.cmd import zig # zig is not installed by default
193+
201194
logging.info("Init zig package")
202195
cmd(zig["init", "--minimal"])
203196

@@ -336,26 +329,7 @@ def _SetupDocs(name: str, desc: str, url: str, version: str, licenses: list[str]
336329
)
337330

338331

339-
def main(argv):
340-
parser = argparse.ArgumentParser()
341-
parser.add_argument("--name", help="Library name", required=True)
342-
parser.add_argument("--description", help="Library description", required=True)
343-
parser.add_argument("--url", help="Project url", required=True)
344-
parser.add_argument("--git", help="Project gitrepo", required=True)
345-
parser.add_argument("--license", help="Library license SPDX identifier", nargs="+")
346-
parser.add_argument("--verbose", help="Verbose logging", action="store_true")
347-
348-
args = parser.parse_args(argv)
349-
350-
logging.basicConfig(
351-
level=logging.INFO,
352-
format="%(message)s",
353-
datefmt="[%X]",
354-
handlers=[RichHandler()],
355-
)
356-
if args.verbose:
357-
logging.basicConfig(level=logging.DEBUG)
358-
332+
def run(args):
359333
console.print("[bold]Init git repository...[/bold]")
360334
cmd(git["init", args.name])
361335
os.chdir(args.name)
@@ -379,5 +353,15 @@ def main(argv):
379353
_SetupDocs(args.name, args.description, args.url, version, licenses)
380354

381355

382-
if __name__ == "__main__":
383-
sys.exit(main(sys.argv[1:]))
356+
def cli(subparsers):
357+
parser = subparsers.add_parser(
358+
"init",
359+
help="Initializes a new library from a template",
360+
)
361+
parser.add_argument("--name", help="Library name", required=True)
362+
parser.add_argument("--description", help="Library description", required=True)
363+
parser.add_argument("--url", help="Project url", required=True)
364+
parser.add_argument("--git", help="Project gitrepo", required=True)
365+
parser.add_argument("--license", help="Library license SPDX identifier", nargs="+")
366+
367+
parser.set_defaults(func=run)

0 commit comments

Comments
 (0)