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 ( ) :
install_modules ( sys . argv [ 1 ] )
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-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-04-11 13:35:11 -05:00
f " { enterprise_mod . relative_to ( REPO_ROOT ) . as_posix ( ) } missing, defaulting to local non-enterprise build (--config=local --build_enterprise=False). Add the directory to not automatically add these options. "
2025-04-10 16:49:40 -05:00
)
args + = [ " --build_enterprise=False " , " --config=local " ]
engflow_auth ( args )
write_workstation_bazelrc ( args )
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 ( )