mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
79 lines
2.4 KiB
Python
79 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
|
|
import os
|
|
import sys
|
|
|
|
python_version = sys.version_info[:2]
|
|
|
|
if python_version < (3, 8):
|
|
sys.exit(f"Error: Sentry requires at least Python 3.8 ({python_version})")
|
|
if python_version != (3, 8):
|
|
import logging
|
|
|
|
logger = logging.getLogger()
|
|
logger.warning("A Python version different than 3.8 is being used (%s)", python_version)
|
|
|
|
|
|
from distutils.command.build import build as BuildCommand
|
|
|
|
from setuptools import setup
|
|
from setuptools.command.develop import develop as DevelopCommand
|
|
from setuptools.command.sdist import sdist as SDistCommand
|
|
|
|
ROOT = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
# add sentry to path so we can import sentry.utils.distutils
|
|
sys.path.insert(0, os.path.join(ROOT, "src"))
|
|
|
|
|
|
from sentry.utils.distutils.commands.build_assets import BuildAssetsCommand
|
|
from sentry.utils.distutils.commands.build_integration_docs import BuildIntegrationDocsCommand
|
|
from sentry.utils.distutils.commands.build_js_sdk_registry import BuildJsSdkRegistryCommand
|
|
|
|
IS_LIGHT_BUILD = os.environ.get("SENTRY_LIGHT_BUILD") == "1"
|
|
|
|
|
|
class SentrySDistCommand(SDistCommand):
|
|
# If we are not a light build we want to also execute build_assets as
|
|
# part of our source build pipeline.
|
|
if not IS_LIGHT_BUILD:
|
|
sub_commands = SDistCommand.sub_commands + [
|
|
("build_integration_docs", None),
|
|
("build_assets", None),
|
|
("build_js_sdk_registry", None),
|
|
]
|
|
|
|
|
|
class SentryBuildCommand(BuildCommand):
|
|
def run(self):
|
|
from distutils import log as distutils_log
|
|
|
|
distutils_log.set_threshold(distutils_log.WARN)
|
|
|
|
if not IS_LIGHT_BUILD:
|
|
self.run_command("build_integration_docs")
|
|
self.run_command("build_assets")
|
|
self.run_command("build_js_sdk_registry")
|
|
BuildCommand.run(self)
|
|
|
|
|
|
class SentryDevelopCommand(DevelopCommand):
|
|
def run(self):
|
|
DevelopCommand.run(self)
|
|
if not IS_LIGHT_BUILD:
|
|
self.run_command("build_integration_docs")
|
|
self.run_command("build_assets")
|
|
self.run_command("build_js_sdk_registry")
|
|
|
|
|
|
cmdclass = {
|
|
"sdist": SentrySDistCommand,
|
|
"develop": SentryDevelopCommand,
|
|
"build": SentryBuildCommand,
|
|
"build_assets": BuildAssetsCommand,
|
|
"build_integration_docs": BuildIntegrationDocsCommand,
|
|
"build_js_sdk_registry": BuildJsSdkRegistryCommand,
|
|
}
|
|
|
|
setup(cmdclass=cmdclass)
|