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) [**Interactive HTML BoM**](https://github.com/INTI-CMNB/InteractiveHtmlBom) v2.4.1.4 (tool)
- Mandatory for `ibom` - 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` - Mandatory for `kibom`
[**LXML**](https://pypi.org/project/LXML/) (python module) [Debian](https://packages.debian.org/bullseye/python3-lxml) [**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 tempfile import NamedTemporaryFile
from subprocess import (check_output, STDOUT, CalledProcessError) from subprocess import (check_output, STDOUT, CalledProcessError)
from .misc import (CMD_KIBOM, URL_KIBOM, BOM_ERROR, ToolDependency, ToolDependencyRole, W_EXTNAME) from .misc import (CMD_KIBOM, URL_KIBOM, BOM_ERROR, ToolDependency, ToolDependencyRole, W_EXTNAME)
from .kiplot import (check_script)
from .gs import (GS) from .gs import (GS)
from .optionable import Optionable, BaseOptions from .optionable import Optionable, BaseOptions
from .error import KiPlotConfigurationError from .error import KiPlotConfigurationError
from .bom.columnlist import ColumnList from .bom.columnlist import ColumnList
from .registrable import RegDependency from .registrable import RegDependency
from .dep_downloader import check_tool, pytool_downloader
from .macros import macros, document, output_class # noqa: F401 from .macros import macros, document, output_class # noqa: F401
from . import log from . import log
logger = log.get_logger() logger = log.get_logger()
CONFIG_FILENAME = 'config.kibom.ini' CONFIG_FILENAME = 'config.kibom.ini'
RegDependency.register(ToolDependency('kibom', 'KiBoM', URL_KIBOM, url_down=URL_KIBOM+'/releases', kibom_dep = ToolDependency('kibom', 'KiBoM', URL_KIBOM, url_down=URL_KIBOM+'/releases', command=CMD_KIBOM, in_debian=False,
command=CMD_KIBOM, in_debian=False, roles=ToolDependencyRole(version=(1, 8, 0)))) downloader=pytool_downloader, roles=ToolDependencyRole(version=(1, 8, 0)))
RegDependency.register(kibom_dep)
class KiBoMRegex(Optionable): class KiBoMRegex(Optionable):
@ -183,7 +184,7 @@ class KiBoMConfig(Optionable):
""" Create a list of valid columns """ """ Create a list of valid columns """
if not GS.sch: if not GS.sch:
return ColumnList.COLUMNS_DEFAULT return ColumnList.COLUMNS_DEFAULT
check_script(CMD_KIBOM, URL_KIBOM, '1.8.0') check_tool(kibom_dep, fatal=True)
config = None config = None
csv = None csv = None
columns = None columns = None
@ -370,7 +371,7 @@ class KiBoMOptions(BaseOptions):
return [] return []
def run(self, name): 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() format = self.format.lower()
prj = GS.sch_no_ext prj = GS.sch_no_ext
config = os.path.join(GS.sch_dir, self.conf) config = os.path.join(GS.sch_dir, self.conf)
@ -383,7 +384,7 @@ class KiBoMOptions(BaseOptions):
output = os.path.basename(prj)+'.'+format output = os.path.basename(prj)+'.'+format
output_dir = name output_dir = name
logger.debug('Doing BoM, format {} prj: {} config: {} output: {}'.format(format, prj, config, output)) logger.debug('Doing BoM, format {} prj: {} config: {} output: {}'.format(format, prj, config, output))
cmd = [CMD_KIBOM, cmd = [kibom_command,
'-n', str(self.number), '-n', str(self.number),
'--cfg', config, '--cfg', config,
'-s', self.separator, '-s', self.separator,

View File

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