mirror of
https://github.com/bitwarden/server
synced 2025-12-23 19:53:40 +00:00
Give the community create command the non-interactive treatment
This commit is contained in:
@@ -3,11 +3,46 @@ export DEV_DIR=/workspace/dev
|
|||||||
export CONTAINER_CONFIG=/workspace/.devcontainer/community_dev
|
export CONTAINER_CONFIG=/workspace/.devcontainer/community_dev
|
||||||
git config --global --add safe.directory /workspace
|
git config --global --add safe.directory /workspace
|
||||||
|
|
||||||
|
if [[ -z "${CODESPACES}" ]]; then
|
||||||
|
allow_interactive=1
|
||||||
|
else
|
||||||
|
echo "Doing non-interactive setup"
|
||||||
|
allow_interactive=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
get_option() {
|
||||||
|
# Helper function for reading the value of an environment variable
|
||||||
|
# primarily but then falling back to an interactive question if allowed
|
||||||
|
# and lastly falling back to a default value input when either other
|
||||||
|
# option is available.
|
||||||
|
name_of_var="$1"
|
||||||
|
question_text="$2"
|
||||||
|
default_value="$3"
|
||||||
|
is_secret="$4"
|
||||||
|
|
||||||
|
if [[ -n "${!name_of_var}" ]]; then
|
||||||
|
# If the env variable they gave us has a value, then use that value
|
||||||
|
echo "${!name_of_var}"
|
||||||
|
elif [[ "$allow_interactive" == 1 ]]; then
|
||||||
|
# If we can be interactive, then use the text they gave us to request input
|
||||||
|
if [[ "$is_secret" == 1 ]]; then
|
||||||
|
read -r -s -p "$question_text" response
|
||||||
|
echo "$response"
|
||||||
|
else
|
||||||
|
read -r -p "$question_text" response
|
||||||
|
echo "$response"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# If no environment variable and not interactive, then just give back default value
|
||||||
|
echo "$default_value"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
get_installation_id_and_key() {
|
get_installation_id_and_key() {
|
||||||
pushd ./dev >/dev/null || exit
|
pushd ./dev >/dev/null || exit
|
||||||
echo "Please enter your installation id and key from https://bitwarden.com/host:"
|
echo "Please enter your installation id and key from https://bitwarden.com/host:"
|
||||||
read -r -p "Installation id: " INSTALLATION_ID
|
INSTALLATION_ID="$(get_option "INSTALLATION_ID" "Installation id: " "00000000-0000-0000-0000-000000000001")"
|
||||||
read -r -p "Installation key: " INSTALLATION_KEY
|
INSTALLATION_KEY="$(get_option "INSTALLATION_KEY", "Installation key: " "" 1)"
|
||||||
jq ".globalSettings.installation.id = \"$INSTALLATION_ID\" |
|
jq ".globalSettings.installation.id = \"$INSTALLATION_ID\" |
|
||||||
.globalSettings.installation.key = \"$INSTALLATION_KEY\"" \
|
.globalSettings.installation.key = \"$INSTALLATION_KEY\"" \
|
||||||
secrets.json.example >secrets.json # create/overwrite secrets.json
|
secrets.json.example >secrets.json # create/overwrite secrets.json
|
||||||
@@ -30,11 +65,10 @@ configure_other_vars() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
one_time_setup() {
|
one_time_setup() {
|
||||||
read -r -p \
|
do_secrets_json_setup="$(get_option "SETUP_SECRETS_JSON" "Would you like to configure your secrets and certificates for the first time?
|
||||||
"Would you like to configure your secrets and certificates for the first time?
|
|
||||||
WARNING: This will overwrite any existing secrets.json and certificate files.
|
WARNING: This will overwrite any existing secrets.json and certificate files.
|
||||||
Proceed? [y/N] " response
|
Proceed? [y/N] " "n")"
|
||||||
if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
if [[ "$do_secrets_json_setup" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
echo "Running one-time setup script..."
|
echo "Running one-time setup script..."
|
||||||
sleep 1
|
sleep 1
|
||||||
get_installation_id_and_key
|
get_installation_id_and_key
|
||||||
@@ -50,11 +84,4 @@ Proceed? [y/N] " response
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# main
|
one_time_setu
|
||||||
if [[ -z "${CODESPACES}" ]]; then
|
|
||||||
one_time_setup
|
|
||||||
else
|
|
||||||
# Ignore interactive elements when running in codespaces since they are not supported there
|
|
||||||
# TODO Write codespaces specific instructions and link here
|
|
||||||
echo "Running in codespaces, follow instructions here: https://contributing.bitwarden.com/getting-started/server/guide/ to continue the setup"
|
|
||||||
fi
|
|
||||||
|
|||||||
Reference in New Issue
Block a user