Initial Commit

This commit is contained in:
2026-02-10 23:00:19 -06:00
commit a6690b4382
12 changed files with 130 additions and 0 deletions

0
chinook/__init__.py Normal file
View File

47
chinook/__main__.py Normal file
View File

@@ -0,0 +1,47 @@
import logging
from chinook import pipeline
from argparse import ArgumentParser
from pathlib import Path
from semver import Version
def main() -> None:
formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
console.setFormatter(formatter)
logger = logging.getLogger("chinook")
logger.addHandler(console)
logger.setLevel(logging.INFO)
# Parent parser to all subcommands.
parser = ArgumentParser(
prog = "chinook",
description = "Opinionated build tool for C/C++!"
)
commands = parser.add_subparsers(required=True)
buildcmd = commands.add_parser("build",help="Builds your Chinook project")
buildcmd.set_defaults(func=pipeline.build)
buildcmd.add_argument(
"project",
nargs="?",
default=".",
type=Path,
help="The path to the project to build",
metavar="PROJECT"
)
print("\n".join([
"┏┓┓ • ┓ ",
"┃ ┣┓┓┏┓┏┓┏┓┃┏",
"┗┛┛┗┗┛┗┗┛┗┛┛┗ v" + str(Version(major=0,minor=1,patch=0))
]))
arguments = parser.parse_args()
arguments.func(arguments)
# Auto execute.
if __name__ == "__main__": main()

View File

@@ -0,0 +1 @@
from ._chinookfile import ChinookFile

View File

@@ -0,0 +1,5 @@
from dataclasses import dataclass
@dataclass
class ChinookFile:
pass

View File

@@ -0,0 +1,3 @@
from ._build import build
__all__ = [ build ]

View File

@@ -0,0 +1,25 @@
from ..models import ChinookFile
from pathlib import Path
from typing import overload
@overload
def build(path: Path) -> None: ...
@overload
def build(file: ChinookFile) -> None: ...
def build(value) -> None:
if isinstance(value, Path):
return _build_from_path(value)
elif isinstance(value, ChinookFile):
return _build_from_file(value)
def _build_from_path(path: Path) -> None:
pass
def _build_from_file(file: ChinookFile) -> None:
pass