mirror of
https://fuchsia.googlesource.com/third_party/pigweed.googlesource.com/pigweed/pigweed
synced 2024-09-09 04:29:36 +00:00
3fa03cadd9
For the 'pw' and 'pw build' commands. This mirrors current support for bash and zsh. Change-Id: I187c0af27b64d67745639b8ff3f2768de4934a63 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213734 Reviewed-by: Chad Norvell <chadnorvell@google.com> Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com> Commit-Queue: Anthony DiGirolamo <tonymd@google.com> Pigweed-Auto-Submit: Anthony DiGirolamo <tonymd@google.com>
91 lines
3.0 KiB
Fish
91 lines
3.0 KiB
Fish
# 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
|