File tree Expand file tree Collapse file tree 5 files changed +509
-226
lines changed Expand file tree Collapse file tree 5 files changed +509
-226
lines changed Original file line number Diff line number Diff line change 99XlsxWriter
1010PyYAML
1111fosslight_util >= 2.1.13
12- dependency-check
Original file line number Diff line number Diff line change 66import os
77import shutil
88from setuptools import setup , find_packages
9+ from setuptools .command .install import install
10+
11+
12+ class PostInstallCommand (install ):
13+ """Post-installation for installation mode."""
14+ def run (self ):
15+ install .run (self )
16+ # Install syft and grype after package installation
17+ try :
18+ from src .fosslight_binary ._jar_analysis import ensure_syft_grype
19+ print ("Installing syft and grype..." )
20+ ensure_syft_grype ()
21+ print ("Syft and grype installation completed." )
22+ except Exception as e :
23+ print (f"Warning: Failed to auto-install syft/grype: { e } " )
24+ print ("You can install them manually or they will be installed on first use." )
25+
926
1027with open ('README.md' , 'r' , 'utf-8' ) as f :
1128 readme = f .read ()
6380 },
6481 package_data = {_PACKAEG_NAME : [os .path .join (_LICENSE_DIR , '*' )]},
6582 include_package_data = True ,
83+ cmdclass = {
84+ 'install' : PostInstallCommand ,
85+ },
6686 entry_points = {
6787 "console_scripts" : [
6888 "binary_analysis = fosslight_binary.cli:main" ,
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env python
2+ # -*- coding: utf-8 -*-
3+ # Copyright (c) 2025 LG Electronics Inc.
4+ # SPDX-License-Identifier: Apache-2.0
5+
6+ # Auto-install syft and grype on first import
7+ import logging
8+ import os
9+
10+ logger = logging .getLogger (__name__ )
11+
12+
13+ def _auto_install_dependencies ():
14+ """Auto-install syft and grype if not available"""
15+ try :
16+ from ._jar_analysis import ensure_syft_grype
17+ # Only try to install if we're not in a restricted environment
18+ if not os .environ .get ('FOSSLIGHT_SKIP_AUTO_INSTALL' ):
19+ ensure_syft_grype ()
20+ except Exception as ex :
21+ # Don't fail package import if auto-install fails
22+ logger .debug (f"Auto-install failed (this is not critical): { ex } " )
23+
24+
25+ # Run auto-install on import
26+ _auto_install_dependencies ()
You can’t perform that action at this time.
0 commit comments