2025-01-27 07:58:36 -06:00
import os
import pathlib
import sys
REPO_ROOT = pathlib . Path ( __file__ ) . parent . parent . parent
sys . path . append ( str ( REPO_ROOT ) )
# This script should be careful not to disrupt automatic mechanism which
# may be expecting certain stdout, always print to stderr.
sys . stdout = sys . stderr
from bazel . wrapper_hook . install_modules import install_modules
from bazel . wrapper_hook . wrapper_debug import wrapper_debug
wrapper_debug ( f " wrapper hook script is using { sys . executable } " )
def main ( ) :
2025-07-30 13:54:02 -07:00
install_modules ( sys . argv [ 1 ] , sys . argv [ 1 : ] )
2025-01-27 07:58:36 -06:00
2025-02-14 10:35:12 -08:00
from bazel . wrapper_hook . autogenerated_targets import autogenerate_targets
2025-01-28 21:05:00 -06:00
from bazel . wrapper_hook . engflow_check import engflow_auth
2025-05-19 08:54:19 -07:00
from bazel . wrapper_hook . generate_common_bes_bazelrc import write_workstation_bazelrc
2025-04-10 16:49:40 -05:00
from bazel . wrapper_hook . plus_interface import check_bazel_command_type , test_runner_interface
2025-08-04 09:51:03 -07:00
from bazel . wrapper_hook . set_mongo_variables import write_mongo_variables_bazelrc
2025-01-28 21:05:00 -06:00
2025-02-14 10:35:12 -08:00
# This is used to autogenerate a BUILD.bazel that creates
# Filegroups for select tags - used to group targets for installing
autogenerate_targets ( sys . argv , sys . argv [ 1 ] )
2025-06-04 11:04:24 -07:00
enterprise = True
2025-04-10 16:49:40 -05:00
if check_bazel_command_type ( sys . argv [ 1 : ] ) not in [ " clean " , " shutdown " , " version " , None ] :
args = sys . argv
enterprise_mod = REPO_ROOT / " src " / " mongo " / " db " / " modules " / " enterprise "
if not enterprise_mod . exists ( ) :
2025-06-04 11:04:24 -07:00
enterprise = False
2025-04-10 16:49:40 -05:00
print (
2025-08-12 10:56:10 -05:00
f " { enterprise_mod . relative_to ( REPO_ROOT ) . as_posix ( ) } missing, defaulting to local non-enterprise build (--config=local --//bazel/config:build_enterprise=False). Add the directory to not automatically add these options. "
2025-04-10 16:49:40 -05:00
)
2025-08-12 10:56:10 -05:00
args + = [ " --//bazel/config:build_enterprise=False " , " --config=local " ]
2025-04-10 16:49:40 -05:00
2025-07-31 20:19:45 -05:00
atlas_mod = REPO_ROOT / " src " / " mongo " / " db " / " modules " / " atlas "
if not atlas_mod . exists ( ) :
2025-08-12 10:56:10 -05:00
args + = [ " --//bazel/config:build_atlas=False " ]
2025-07-31 20:19:45 -05:00
2025-04-10 16:49:40 -05:00
engflow_auth ( args )
write_workstation_bazelrc ( args )
2025-08-04 09:51:03 -07:00
write_mongo_variables_bazelrc ( args )
2025-07-31 14:04:27 -05:00
2025-04-10 16:49:40 -05:00
args = test_runner_interface (
2025-06-04 11:04:24 -07:00
sys . argv [ 1 : ] ,
autocomplete_query = os . environ . get ( " MONGO_AUTOCOMPLETE_QUERY " ) == " 1 " ,
enterprise = enterprise ,
2025-04-10 16:49:40 -05:00
)
else :
args = sys . argv [ 2 : ]
2025-01-27 07:58:36 -06:00
os . chmod ( os . environ . get ( " MONGO_BAZEL_WRAPPER_ARGS " ) , 0o644 )
with open ( os . environ . get ( " MONGO_BAZEL_WRAPPER_ARGS " ) , " w " ) as f :
2025-01-28 21:05:00 -06:00
f . write ( " \n " . join ( args ) )
f . write ( " \n " )
2025-01-27 07:58:36 -06:00
if __name__ == " __main__ " :
main ( )