Use default python logger
This commit is contained in:
parent
5f6ca201fc
commit
10f4a29e89
|
@ -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…
Reference in a new issue