Added auto-download for KiBoM

This commit is contained in:
Salvador E. Tropea 2022-06-29 10:29:37 -03:00
parent c453fff8af
commit c97705da03
3 changed files with 9 additions and 8 deletions

View File

@ -127,7 +127,7 @@ Notes:
[**Interactive HTML BoM**](https://github.com/INTI-CMNB/InteractiveHtmlBom) v2.4.1.4 (tool)
- Mandatory for `ibom`
[**KiBoM**](https://github.com/INTI-CMNB/KiBoM) v1.8.0 (tool)
[**KiBoM**](https://github.com/INTI-CMNB/KiBoM) v1.8.0 (tool) (Auto-download)
- Mandatory for `kibom`
[**LXML**](https://pypi.org/project/LXML/) (python module) [Debian](https://packages.debian.org/bullseye/python3-lxml)

View File

@ -8,19 +8,20 @@ from re import search
from tempfile import NamedTemporaryFile
from subprocess import (check_output, STDOUT, CalledProcessError)
from .misc import (CMD_KIBOM, URL_KIBOM, BOM_ERROR, ToolDependency, ToolDependencyRole, W_EXTNAME)
from .kiplot import (check_script)
from .gs import (GS)
from .optionable import Optionable, BaseOptions
from .error import KiPlotConfigurationError
from .bom.columnlist import ColumnList
from .registrable import RegDependency
from .dep_downloader import check_tool, pytool_downloader
from .macros import macros, document, output_class # noqa: F401
from . import log
logger = log.get_logger()
CONFIG_FILENAME = 'config.kibom.ini'
RegDependency.register(ToolDependency('kibom', 'KiBoM', URL_KIBOM, url_down=URL_KIBOM+'/releases',
command=CMD_KIBOM, in_debian=False, roles=ToolDependencyRole(version=(1, 8, 0))))
kibom_dep = ToolDependency('kibom', 'KiBoM', URL_KIBOM, url_down=URL_KIBOM+'/releases', command=CMD_KIBOM, in_debian=False,
downloader=pytool_downloader, roles=ToolDependencyRole(version=(1, 8, 0)))
RegDependency.register(kibom_dep)
class KiBoMRegex(Optionable):
@ -183,7 +184,7 @@ class KiBoMConfig(Optionable):
""" Create a list of valid columns """
if not GS.sch:
return ColumnList.COLUMNS_DEFAULT
check_script(CMD_KIBOM, URL_KIBOM, '1.8.0')
check_tool(kibom_dep, fatal=True)
config = None
csv = None
columns = None
@ -370,7 +371,7 @@ class KiBoMOptions(BaseOptions):
return []
def run(self, name):
check_script(CMD_KIBOM, URL_KIBOM, '1.8.0')
kibom_command = check_tool(kibom_dep, fatal=True)
format = self.format.lower()
prj = GS.sch_no_ext
config = os.path.join(GS.sch_dir, self.conf)
@ -383,7 +384,7 @@ class KiBoMOptions(BaseOptions):
output = os.path.basename(prj)+'.'+format
output_dir = name
logger.debug('Doing BoM, format {} prj: {} config: {} output: {}'.format(format, prj, config, output))
cmd = [CMD_KIBOM,
cmd = [kibom_command,
'-n', str(self.number),
'--cfg', config,
'-s', self.separator,

View File

@ -223,7 +223,7 @@ deps = '{\
"KiBoM": {\
"command": "KiBOM_CLI.py",\
"deb_package": "kibom",\
"downloader": null,\
"downloader": {},\
"extra_deb": null,\
"help_option": "--version",\
"importance": 10000,\