Use default python logger
This commit is contained in:
		
							parent
							
								
									5f6ca201fc
								
							
						
					
					
						commit
						10f4a29e89
					
				
					 7 changed files with 33 additions and 54 deletions
				
			
		| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
import sys
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from os.path import isdir
 | 
			
		||||
from osdk import const, shell
 | 
			
		||||
| 
						 | 
				
			
			@ -9,19 +10,20 @@ import osdk.vt100 as vt100
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def main() -> int:
 | 
			
		||||
    logging.basicConfig(
 | 
			
		||||
        level=logging.INFO,
 | 
			
		||||
        format=f"{vt100.CYAN}%(asctime)s{vt100.RESET} {vt100.YELLOW}%(levelname)s{vt100.RESET} %(name)s: %(message)s",
 | 
			
		||||
        datefmt="%Y-%m-%d %H:%M:%S",
 | 
			
		||||
    )
 | 
			
		||||
    a = parse(sys.argv[1:])
 | 
			
		||||
 | 
			
		||||
    if not a.consumeOpt("verbose", False):
 | 
			
		||||
        if not isdir(const.OSDK_DIR):
 | 
			
		||||
            shell.mkdir(const.OSDK_DIR)
 | 
			
		||||
        sys.stderr = open(f"{const.OSDK_DIR}/osdk.log", "w")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        loadAll()
 | 
			
		||||
        exec(a)
 | 
			
		||||
        return 0
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(f"{vt100.RED}{e}{vt100.RESET}")
 | 
			
		||||
        logging.error(f"{vt100.RED}{e}{vt100.RESET}")
 | 
			
		||||
        print()
 | 
			
		||||
 | 
			
		||||
        usage()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,13 @@
 | 
			
		|||
import os
 | 
			
		||||
import logging
 | 
			
		||||
from typing import TextIO
 | 
			
		||||
 | 
			
		||||
from osdk.model import Props
 | 
			
		||||
from osdk.ninja import Writer
 | 
			
		||||
from osdk.logger import Logger
 | 
			
		||||
from osdk.context import ComponentInstance, Context, contextFor
 | 
			
		||||
from osdk import shell, rules
 | 
			
		||||
 | 
			
		||||
logger = Logger("builder")
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def gen(out: TextIO, context: Context):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,12 @@ from typing import cast, Protocol, Iterable
 | 
			
		|||
from itertools import chain
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from osdk.model import ProjectManifest, TargetManifest, ComponentManifest, Props, Type, Tool, Tools
 | 
			
		||||
from osdk.logger import Logger
 | 
			
		||||
from osdk import const, shell, jexpr, utils, rules, mixins
 | 
			
		||||
 | 
			
		||||
logger = Logger("context")
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IContext(Protocol):
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +237,7 @@ def contextFor(targetSpec: str, props: Props = {}) -> Context:
 | 
			
		|||
    if targetSpec in context:
 | 
			
		||||
        return context[targetSpec]
 | 
			
		||||
 | 
			
		||||
    logger.log(f"Loading context for '{targetSpec}'")
 | 
			
		||||
    logger.info(f"Loading context for '{targetSpec}'")
 | 
			
		||||
 | 
			
		||||
    targetEls = targetSpec.split(":")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
import sys
 | 
			
		||||
import osdk.vt100 as vt100
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Logger:
 | 
			
		||||
    name: str
 | 
			
		||||
 | 
			
		||||
    def __init__(self, name: str):
 | 
			
		||||
        self.name = name
 | 
			
		||||
 | 
			
		||||
    def log(self, message: str):
 | 
			
		||||
        print(
 | 
			
		||||
            f"{vt100.CYAN}[{self.name}]{vt100.RESET} {message}", file=sys.stderr)
 | 
			
		||||
 | 
			
		||||
    def warn(self, message: str):
 | 
			
		||||
        print(
 | 
			
		||||
            f"{vt100.YELLOW}[{self.name}]{vt100.RESET} {message}", file=sys.stderr)
 | 
			
		||||
 | 
			
		||||
    def error(self, message: str):
 | 
			
		||||
        print(
 | 
			
		||||
            f"{vt100.RED}[{self.name}]{vt100.RESET} {message}", file=sys.stderr)
 | 
			
		||||
| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
import os
 | 
			
		||||
from enum import Enum
 | 
			
		||||
from typing import Any
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from osdk.jexpr import Json
 | 
			
		||||
from osdk.logger import Logger
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
logger = Logger("model")
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
Props = dict[str, Any]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -259,13 +259,13 @@ class ComponentManifest(Manifest):
 | 
			
		|||
    def isEnabled(self, target: TargetManifest) -> tuple[bool, str]:
 | 
			
		||||
        for k, v in self.enableIf.items():
 | 
			
		||||
            if not k in target.props:
 | 
			
		||||
                logger.log(
 | 
			
		||||
                logger.info(
 | 
			
		||||
                    f"Component {self.id} disabled by missing {k} in target")
 | 
			
		||||
                return False, f"Missing props '{k}' in target"
 | 
			
		||||
 | 
			
		||||
            if not target.props[k] in v:
 | 
			
		||||
                vStrs = [f"'{str(x)}'" for x in v]
 | 
			
		||||
                logger.log(
 | 
			
		||||
                logger.info(
 | 
			
		||||
                    f"Component {self.id} disabled by {k}={target.props[k]} not in {v}")
 | 
			
		||||
                return False, f"Props missmatch for '{k}': Got '{target.props[k]}' but expected {', '.join(vStrs)}"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,13 @@
 | 
			
		|||
import os
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
import importlib.util as importlib
 | 
			
		||||
from osdk.logger import Logger
 | 
			
		||||
from osdk.shell import readdir
 | 
			
		||||
 | 
			
		||||
logger = Logger("plugins")
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
def load(path: str):
 | 
			
		||||
    logger.log(f"Loading plugin {path}")
 | 
			
		||||
    logger.info(f"Loading plugin {path}")
 | 
			
		||||
    spec = importlib.spec_from_file_location("plugin", path)
 | 
			
		||||
 | 
			
		||||
    if not spec or not spec.loader:
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +19,7 @@ def load(path: str):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def loadAll():
 | 
			
		||||
    logger.log("Loading plugins...")
 | 
			
		||||
    logger.info("Loading plugins...")
 | 
			
		||||
    for files in readdir(os.path.join("meta", "plugins")):
 | 
			
		||||
        if files.endswith(".py"):
 | 
			
		||||
            plugin = load(os.path.join("meta", "plugins", files))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,11 +8,11 @@ import re
 | 
			
		|||
import shutil
 | 
			
		||||
import fnmatch
 | 
			
		||||
import platform
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from osdk.logger import Logger
 | 
			
		||||
from osdk import const
 | 
			
		||||
 | 
			
		||||
logger = Logger("shell")
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Uname:
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ def sha256sum(path: str) -> str:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def find(path: str | list[str], wildcards: list[str] = [], recusive: bool = True) -> list[str]:
 | 
			
		||||
    logger.log(f"Looking for files in {path} matching {wildcards}")
 | 
			
		||||
    logger.info(f"Looking for files in {path} matching {wildcards}")
 | 
			
		||||
 | 
			
		||||
    result: list[str] = []
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ def find(path: str | list[str], wildcards: list[str] = [], recusive: bool = True
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def mkdir(path: str) -> str:
 | 
			
		||||
    logger.log(f"Creating directory {path}")
 | 
			
		||||
    logger.info(f"Creating directory {path}")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        os.makedirs(path)
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +92,7 @@ def mkdir(path: str) -> str:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def rmrf(path: str) -> bool:
 | 
			
		||||
    logger.log(f"Removing directory {path}")
 | 
			
		||||
    logger.info(f"Removing directory {path}")
 | 
			
		||||
 | 
			
		||||
    if not os.path.exists(path):
 | 
			
		||||
        return False
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +111,7 @@ def wget(url: str, path: str | None = None) -> str:
 | 
			
		|||
    if os.path.exists(path):
 | 
			
		||||
        return path
 | 
			
		||||
 | 
			
		||||
    logger.log(f"Downloading {url} to {path}")
 | 
			
		||||
    logger.info(f"Downloading {url} to {path}")
 | 
			
		||||
 | 
			
		||||
    r = requests.get(url, stream=True)
 | 
			
		||||
    r.raise_for_status()
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ def wget(url: str, path: str | None = None) -> str:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def exec(*args: str):
 | 
			
		||||
    logger.log(f"Executing {args}")
 | 
			
		||||
    logger.info(f"Executing {args}")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        proc = subprocess.run(args)
 | 
			
		||||
| 
						 | 
				
			
			@ -147,7 +147,7 @@ def exec(*args: str):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def popen(*args: str) -> str:
 | 
			
		||||
    logger.log(f"Executing {args}")
 | 
			
		||||
    logger.info(f"Executing {args}")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=sys.stderr)
 | 
			
		||||
| 
						 | 
				
			
			@ -165,7 +165,7 @@ def popen(*args: str) -> str:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def readdir(path: str) -> list[str]:
 | 
			
		||||
    logger.log(f"Reading directory {path}")
 | 
			
		||||
    logger.info(f"Reading directory {path}")
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        return os.listdir(path)
 | 
			
		||||
| 
						 | 
				
			
			@ -174,13 +174,13 @@ def readdir(path: str) -> list[str]:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
def cp(src: str, dst: str):
 | 
			
		||||
    logger.log(f"Copying {src} to {dst}")
 | 
			
		||||
    logger.info(f"Copying {src} to {dst}")
 | 
			
		||||
 | 
			
		||||
    shutil.copy(src, dst)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def cpTree(src: str, dst: str):
 | 
			
		||||
    logger.log(f"Copying {src} to {dst}")
 | 
			
		||||
    logger.info(f"Copying {src} to {dst}")
 | 
			
		||||
 | 
			
		||||
    shutil.copytree(src, dst, dirs_exist_ok=True)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -203,7 +203,7 @@ def latest(cmd: str) -> str:
 | 
			
		|||
    if cmd in LATEST_CACHE:
 | 
			
		||||
        return LATEST_CACHE[cmd]
 | 
			
		||||
 | 
			
		||||
    logger.log(f"Finding latest version of {cmd}")
 | 
			
		||||
    logger.info(f"Finding latest version of {cmd}")
 | 
			
		||||
 | 
			
		||||
    regex = re.compile(r"^" + re.escape(cmd) + r"(-.[0-9]+)?(\.exe)?$")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -220,7 +220,7 @@ def latest(cmd: str) -> str:
 | 
			
		|||
    versions.sort()
 | 
			
		||||
    chosen = versions[-1]
 | 
			
		||||
 | 
			
		||||
    logger.log(f"Chosen {chosen} as latest version of {cmd}")
 | 
			
		||||
    logger.info(f"Chosen {chosen} as latest version of {cmd}")
 | 
			
		||||
 | 
			
		||||
    LATEST_CACHE[cmd] = chosen
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue