# Copyright 2024 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. # This script must be tested on fish 3.6.0 # Get the absolute path of the bootstrap script. set _PW_BOOTSTRAP_PATH (path resolve (status current-filename)) # Check if this file is being executed or sourced. set _pw_sourced 0 if string match --quiet '*from sourcing file*' (status) set _pw_sourced 1 end # Downstream projects need to set something other than PW_ROOT here, like # YOUR_PROJECT_ROOT. Please also set PW_PROJECT_ROOT and PW_ROOT before # invoking pw_bootstrap or pw_activate. ######### BEGIN PROJECT-SPECIFIC CODE ######### set --export PW_ROOT (path resolve (dirname $_PW_BOOTSTRAP_PATH)) # Please also set PW_PROJECT_ROOT to YOUR_PROJECT_ROOT. set --export PW_PROJECT_ROOT $PW_ROOT # Downstream projects may wish to set PW_BANNER_FUNC to a function that prints # an ASCII art banner here. For example: # # set --export PW_BANNER_FUNC banner_function_name # ########## END PROJECT-SPECIFIC CODE ########## source $PW_ROOT/pw_env_setup/util.fish # Check environment properties pw_deactivate pw_eval_sourced $_pw_sourced $_PW_BOOTSTRAP_PATH if not pw_check_root $PW_ROOT return end set --export _PW_ACTUAL_ENVIRONMENT_ROOT (pw_get_env_root) set SETUP_SH "$_PW_ACTUAL_ENVIRONMENT_ROOT/activate.fish" # Run full bootstrap when invoked as bootstrap, or env file is missing/empty. if test (status basename) = "bootstrap.fish" or not test -e $SETUP_SH or not test -s $SETUP_SH ######### BEGIN PROJECT-SPECIFIC CODE ######### pw_bootstrap --shell-file "$SETUP_SH" --install-dir "$_PW_ACTUAL_ENVIRONMENT_ROOT" ########## END PROJECT-SPECIFIC CODE ########## set finalize_mode bootstrap else pw_activate_message set finalize_mode activate end # NOTE: Sourced scripts in fish cannot be sourced within a fuction if # variables should be exported to the calling shell. So activate.fish # must be sourced here instead of within pw_finalize or another # function. pw_finalize_pre_check $finalize_mode "$SETUP_SH" source $SETUP_SH pw_finalize_post_check $finalize_mode "$SETUP_SH" if set --query _PW_ENV_SETUP_STATUS; and test "$_PW_ENV_SETUP_STATUS" -eq 0 # This is where any additional checks about the environment should go. ######### BEGIN PROJECT-SPECIFIC CODE ######### echo -n ########## END PROJECT-SPECIFIC CODE ########## end set -e _pw_sourced set -e _PW_BOOTSTRAP_PATH set -e SETUP_SH source $PW_ROOT/pw_cli/py/pw_cli/shell_completion/pw.fish pw_cleanup git -C "$PW_ROOT" config blame.ignoreRevsFile .git-blame-ignore-revs