mirror of
https://github.com/overleaf/toolkit.git
synced 2025-04-19 07:18:06 +02:00
Scripts to update config/overleaf.rc and config-seed rebrand (#217)
* Add scripts to rebrand variables.env and overleaf.rc
* Update bin/upgrade to prompt for config file rebrand
* Update bin/up to check for correct variable prefix
Ensures SHARELATEX_ is in place for version <= 4.x, and
OVERLEAF_ for version >= 5.x
* Rebrand variables for bin/docker-compose
Updates docker-compose.base.yml and sibling containers
base file with the changes in the script
* Update bin/doctor to support OVERLEAF_ prefix
* Update documentation with the OVERLEAF_ prefix
* Rebrand variables.env and overleaf.rc in config-seed
* Prepare config/version and CHANGELOG for release (WIP)
* Fix script documentation
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Fix doctor logs
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Remove unnecessary fallbacks to SHARELATEX_ vars
* SEt OVERLEAF_DATA_PATH to data/overleaf
* Remove duplicated environment entries
* Moved prefix brand checs from bin/up to bin/docker-compose
* Move set +o pipefail into subshell commands
* Use separate legacy compose files for required SHARELATEX_ vars
* Handle overleaf.rc rebranding before version upgrade
* Group output from rebranding process
* Move prompt for rebranding into helper function
* Refuse to start with mismatching ShareLaTeX vs Overleaf branded configs
* Print expected prefix when checking variables.env
* Print number of mismatching variables in overleaf.rc
* Check on variable rebranding from bin/doctor
* Cleanup bin/doctor lookup for ShareLaTeX branded overleaf.rc
* Update filesystem paths in bin/logs and docs
* Flag old TEXMFVAR entry in config/variables.env
REF: 1829e7ee2a
* Update config-seed version to 5.0.1 and changelog
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
This commit is contained in:
parent
a9db501268
commit
e2b99f150f
25 changed files with 397 additions and 168 deletions
|
@ -45,7 +45,7 @@ function build_environment() {
|
|||
}
|
||||
|
||||
function canonicalize_data_paths() {
|
||||
SHARELATEX_DATA_PATH=$(cd "$TOOLKIT_ROOT"; realpath "$SHARELATEX_DATA_PATH")
|
||||
OVERLEAF_DATA_PATH=$(cd "$TOOLKIT_ROOT"; realpath "$OVERLEAF_DATA_PATH")
|
||||
MONGO_DATA_PATH=$(cd "$TOOLKIT_ROOT"; realpath "$MONGO_DATA_PATH")
|
||||
REDIS_DATA_PATH=$(cd "$TOOLKIT_ROOT"; realpath "$REDIS_DATA_PATH")
|
||||
GIT_BRIDGE_DATA_PATH=$(cd "$TOOLKIT_ROOT"; realpath "$GIT_BRIDGE_DATA_PATH")
|
||||
|
@ -54,10 +54,15 @@ function canonicalize_data_paths() {
|
|||
# Set environment variables for docker-compose.base.yml
|
||||
function set_base_vars() {
|
||||
DOCKER_COMPOSE_FLAGS=(-f "$TOOLKIT_ROOT/lib/docker-compose.base.yml")
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -lt 5 ]]; then
|
||||
DOCKER_COMPOSE_FLAGS+=(-f "$TOOLKIT_ROOT/lib/docker-compose.vars-legacy.yml")
|
||||
else
|
||||
DOCKER_COMPOSE_FLAGS+=(-f "$TOOLKIT_ROOT/lib/docker-compose.vars.yml")
|
||||
fi
|
||||
|
||||
local image_name
|
||||
if [[ -n ${SHARELATEX_IMAGE_NAME:-} ]]; then
|
||||
image_name="$SHARELATEX_IMAGE_NAME"
|
||||
if [[ -n ${OVERLEAF_IMAGE_NAME:-} ]]; then
|
||||
image_name="$OVERLEAF_IMAGE_NAME"
|
||||
elif [[ $SERVER_PRO == "true" ]]; then
|
||||
image_name="quay.io/sharelatex/sharelatex-pro"
|
||||
else
|
||||
|
@ -65,12 +70,12 @@ function set_base_vars() {
|
|||
fi
|
||||
export IMAGE="$image_name:$IMAGE_VERSION"
|
||||
|
||||
if [[ ${SHARELATEX_LISTEN_IP:-null} == "null" ]];
|
||||
if [[ ${OVERLEAF_LISTEN_IP:-null} == "null" ]];
|
||||
then
|
||||
echo "WARNING: the value of SHARELATEX_LISTEN_IP is not set in config/overleaf.rc. This value must be set to the public IP address for direct container access. Defaulting to 0.0.0.0" >&2
|
||||
SHARELATEX_LISTEN_IP="0.0.0.0"
|
||||
echo "WARNING: the value of OVERLEAF_LISTEN_IP is not set in config/overleaf.rc. This value must be set to the public IP address for direct container access. Defaulting to 0.0.0.0" >&2
|
||||
OVERLEAF_LISTEN_IP="0.0.0.0"
|
||||
fi
|
||||
export SHARELATEX_LISTEN_IP
|
||||
export OVERLEAF_LISTEN_IP
|
||||
|
||||
if [[ $SERVER_PRO != "true" || $IMAGE_VERSION_MAJOR -lt 4 ]]; then
|
||||
# Force git bridge to be disabled if not ServerPro >= 4
|
||||
|
@ -84,12 +89,19 @@ function set_base_vars() {
|
|||
HAS_WEB_API=true
|
||||
fi
|
||||
|
||||
OVERLEAF_IN_CONTAINER_DATA_PATH=/var/lib/overleaf
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -lt 5 ]]; then
|
||||
OVERLEAF_IN_CONTAINER_DATA_PATH=/var/lib/sharelatex
|
||||
fi
|
||||
|
||||
export GIT_BRIDGE_ENABLED
|
||||
export MONGO_URL
|
||||
export REDIS_HOST
|
||||
export REDIS_PORT
|
||||
export SHARELATEX_DATA_PATH
|
||||
export SHARELATEX_PORT
|
||||
export OVERLEAF_DATA_PATH
|
||||
export OVERLEAF_PORT
|
||||
export OVERLEAF_IN_CONTAINER_DATA_PATH
|
||||
|
||||
}
|
||||
|
||||
# Set environment variables for docker-compose.redis.yml
|
||||
|
@ -118,7 +130,7 @@ function set_mongo_vars() {
|
|||
function set_sibling_containers_vars() {
|
||||
DOCKER_COMPOSE_FLAGS+=(-f "$TOOLKIT_ROOT/lib/docker-compose.sibling-containers.yml")
|
||||
export DOCKER_SOCKET_PATH
|
||||
export SHARELATEX_DATA_PATH
|
||||
export OVERLEAF_DATA_PATH
|
||||
}
|
||||
|
||||
# Set environment variables for docker-compose.nginx.yml
|
||||
|
@ -196,6 +208,7 @@ function docker_compose() {
|
|||
|
||||
read_image_version
|
||||
read_config
|
||||
check_sharelatex_env_vars
|
||||
build_environment
|
||||
print_debug_info "$@"
|
||||
docker_compose "$@"
|
||||
|
|
101
bin/doctor
101
bin/doctor
|
@ -15,6 +15,8 @@ if [[ ! -d "$TOOLKIT_ROOT/bin" ]] || [[ ! -d "$TOOLKIT_ROOT/config" ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
source "$TOOLKIT_ROOT/lib/shared-functions.sh"
|
||||
|
||||
SPACES_PER_INDENT=4
|
||||
|
||||
WARNINGS_FILE="$(mktemp)"
|
||||
|
@ -185,11 +187,11 @@ function check_config_files() {
|
|||
source "$TOOLKIT_ROOT/$config_file"
|
||||
|
||||
# Check some vars from the RC file
|
||||
if [[ "${SHARELATEX_DATA_PATH:-null}" != "null" ]]; then
|
||||
print_point 2 "SHARELATEX_DATA_PATH: $SHARELATEX_DATA_PATH"
|
||||
if [[ "${OVERLEAF_DATA_PATH:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_DATA_PATH: $OVERLEAF_DATA_PATH"
|
||||
else
|
||||
print_point 2 "SHARELATEX_DATA_PATH: MISSING !"
|
||||
add_warning "rc file, SHARELATEX_DATA_PATH not set"
|
||||
print_point 2 "OVERLEAF_DATA_PATH: MISSING !"
|
||||
add_warning "rc file, OVERLEAF_DATA_PATH not set"
|
||||
fi
|
||||
|
||||
print_point 2 "SERVER_PRO: $SERVER_PRO"
|
||||
|
@ -209,11 +211,11 @@ function check_config_files() {
|
|||
fi
|
||||
print_point 2 "SIBLING_CONTAINERS_ENABLED: $SIBLING_CONTAINERS_ENABLED"
|
||||
fi
|
||||
if [[ "${SHARELATEX_LISTEN_IP:-null}" != "null" ]]; then
|
||||
print_point 2 "SHARELATEX_LISTEN_IP: ${SHARELATEX_LISTEN_IP}"
|
||||
if [[ "${OVERLEAF_LISTEN_IP:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_LISTEN_IP: ${OVERLEAF_LISTEN_IP}"
|
||||
fi
|
||||
if [[ "${SHARELATEX_PORT:-null}" != "null" ]]; then
|
||||
print_point 2 "SHARELATEX_PORT: ${SHARELATEX_PORT}"
|
||||
if [[ "${OVERLEAF_PORT:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_PORT: ${OVERLEAF_PORT}"
|
||||
fi
|
||||
|
||||
print_point 2 "MONGO_ENABLED: $MONGO_ENABLED"
|
||||
|
@ -353,6 +355,87 @@ function check_config_files() {
|
|||
else
|
||||
print_point 2 "SHARELATEX_HISTORY_BACKEND: fs"
|
||||
fi
|
||||
|
||||
if [[ "${OVERLEAF_FILESTORE_BACKEND:-fs}" == "s3" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_BACKEND: s3"
|
||||
if [[ "${OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME: $OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME"
|
||||
else
|
||||
add_warning "OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME is unset"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME: $OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME"
|
||||
else
|
||||
add_warning "OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME is unset"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_S3_ENDPOINT:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_ENDPOINT: [set here]"
|
||||
else
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_ENDPOINT: Using AWS S3"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_S3_PATH_STYLE:-null}" == "true" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_PATH_STYLE: true"
|
||||
else
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_PATH_STYLE: false"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_S3_REGION:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_REGION: $OVERLEAF_FILESTORE_S3_REGION"
|
||||
else
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_REGION: <unset>"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID: [set here]"
|
||||
else
|
||||
add_warning "OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID is missing"
|
||||
fi
|
||||
if [[ "${OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY: [set here]"
|
||||
else
|
||||
add_warning "OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY is missing"
|
||||
fi
|
||||
else
|
||||
print_point 2 "OVERLEAF_FILESTORE_BACKEND: fs"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_BACKEND:-fs}" == "s3" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_BACKEND: s3"
|
||||
if [[ "${OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET: $OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET"
|
||||
else
|
||||
add_warning "OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET is unset"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_CHUNKS_BUCKET:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_CHUNKS_BUCKET: $OVERLEAF_HISTORY_CHUNKS_BUCKET"
|
||||
else
|
||||
add_warning "OVERLEAF_HISTORY_CHUNKS_BUCKET is unset"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_S3_ENDPOINT:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_ENDPOINT: [set here]"
|
||||
else
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_ENDPOINT: Using AWS S3"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_S3_PATH_STYLE:-null}" == "true" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_PATH_STYLE: true"
|
||||
else
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_PATH_STYLE: false"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_S3_REGION:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_REGION: $OVERLEAF_HISTORY_S3_REGION"
|
||||
else
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_REGION: <unset>"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_S3_ACCESS_KEY_ID:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_ACCESS_KEY_ID: [set here]"
|
||||
else
|
||||
add_warning "OVERLEAF_HISTORY_S3_ACCESS_KEY_ID is missing"
|
||||
fi
|
||||
if [[ "${OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY:-null}" != "null" ]]; then
|
||||
print_point 2 "OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY: [set here]"
|
||||
else
|
||||
add_warning "OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY is missing"
|
||||
fi
|
||||
else
|
||||
print_point 2 "OVERLEAF_HISTORY_BACKEND: fs"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
@ -363,7 +446,9 @@ function cleanup() {
|
|||
}
|
||||
|
||||
function __main__() {
|
||||
read_image_version
|
||||
print_section_separator "Overleaf Doctor"
|
||||
check_sharelatex_env_vars
|
||||
check_host_information
|
||||
check_dependencies
|
||||
check_docker_daemon
|
||||
|
|
10
bin/logs
10
bin/logs
|
@ -15,6 +15,8 @@ if [[ ! -d "$TOOLKIT_ROOT/bin" ]] || [[ ! -d "$TOOLKIT_ROOT/config" ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
source "$TOOLKIT_ROOT/lib/shared-functions.sh"
|
||||
|
||||
DEFAULT_TAIL_LINES=20
|
||||
ALL_SERVICES=(chat clsi contacts docstore document-updater filestore git-bridge \
|
||||
mongo notifications real-time redis spelling tags track-changes web \
|
||||
|
@ -127,8 +129,13 @@ function show_compose_logs() {
|
|||
}
|
||||
|
||||
function show_sharelatex_logs() {
|
||||
local base_path=/var/log/overleaf
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -lt 5 ]]; then
|
||||
base_path=/var/log/sharelatex
|
||||
fi
|
||||
|
||||
local service="$1"
|
||||
local log_path="/var/log/sharelatex/$service.log"
|
||||
local log_path="${base_path}/$service.log"
|
||||
local flags=()
|
||||
|
||||
if [[ $FOLLOW == "true" ]]; then
|
||||
|
@ -152,4 +159,5 @@ function show_sharelatex_logs() {
|
|||
}
|
||||
|
||||
parse_args "$@"
|
||||
read_image_version
|
||||
show_logs
|
||||
|
|
|
@ -19,9 +19,9 @@ fi
|
|||
source "$TOOLKIT_ROOT/lib/shared-functions.sh"
|
||||
|
||||
function usage() {
|
||||
echo "Usage: bin/update-env"
|
||||
echo "Usage: bin/rename-env-vars-5-0"
|
||||
echo ""
|
||||
echo "Updates config/variables.env, adding new environment variables"
|
||||
echo "Updates config/variables.env to ensure variables are renamed from 'SHARELATEX_' to 'OVERLEAF_'"
|
||||
echo ""
|
||||
}
|
||||
|
||||
|
@ -31,12 +31,10 @@ function __main__() {
|
|||
exit
|
||||
fi
|
||||
|
||||
# read_image_version
|
||||
echo "This script will update your config/variables.env."
|
||||
echo "We recommend backing up your config with bin/backup-config."
|
||||
prompt "Do you want to continue?"
|
||||
|
||||
rebrand_sharelatex_env_variables
|
||||
rebrand_sharelatex_env_variables 'variables.env'
|
||||
|
||||
echo "Done."
|
||||
}
|
||||
|
|
42
bin/rename-rc-vars
Executable file
42
bin/rename-rc-vars
Executable file
|
@ -0,0 +1,42 @@
|
|||
#! /usr/bin/env bash
|
||||
# shellcheck source-path=..
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
#### Detect Toolkit Project Root ####
|
||||
# if realpath is not available, create a semi-equivalent function
|
||||
command -v realpath >/dev/null 2>&1 || realpath() {
|
||||
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
|
||||
}
|
||||
SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")"
|
||||
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
||||
TOOLKIT_ROOT="$(realpath "$SCRIPT_DIR/..")"
|
||||
if [[ ! -d "$TOOLKIT_ROOT/bin" ]] || [[ ! -d "$TOOLKIT_ROOT/config" ]]; then
|
||||
echo "ERROR: could not find root of overleaf-toolkit project (inferred project root as '$TOOLKIT_ROOT')"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$TOOLKIT_ROOT/lib/shared-functions.sh"
|
||||
|
||||
function usage() {
|
||||
echo "Usage: bin/rename-rc-vars"
|
||||
echo ""
|
||||
echo "Updates config/overleaf.rc to ensure variables are renamed from 'SHARELATEX_' to 'OVERLEAF_'"
|
||||
echo ""
|
||||
}
|
||||
|
||||
function __main__() {
|
||||
if [[ "${1:-null}" == "help" ]] || [[ "${1:-null}" == "--help" ]]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "This script will update your config/overleaf.rc."
|
||||
echo "We recommend backing up your config with bin/backup-config."
|
||||
|
||||
rebrand_sharelatex_env_variables 'overleaf.rc'
|
||||
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
__main__ "$@"
|
17
bin/up
17
bin/up
|
@ -35,22 +35,6 @@ function check_config() {
|
|||
fi
|
||||
}
|
||||
|
||||
function check_sharelatex_env_vars() {
|
||||
local invalid_prefix="SHARELATEX_"
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -lt 5 ]]; then
|
||||
invalid_prefix="OVERLEAF_"
|
||||
fi
|
||||
|
||||
if grep -q "$invalid_prefix" "$TOOLKIT_ROOT/config/variables.env"; then
|
||||
echo "WARNING: some environment variables defined in config/variables.env"
|
||||
echo "contain '$invalid_prefix' in their name"
|
||||
echo "Starting with Overleaf CE and Server Pro 5.0.0 the environment variables"
|
||||
echo "use the prefix 'OVERLEAF_' instead of 'SHARELATEX_'."
|
||||
echo "Please check your config/version and config/variables.env files"
|
||||
prompt "Do you want to continue?"
|
||||
fi
|
||||
}
|
||||
|
||||
function initiate_mongo_replica_set() {
|
||||
echo "Initiating Mongo replica set..."
|
||||
"$TOOLKIT_ROOT/bin/docker-compose" up -d mongo
|
||||
|
@ -70,7 +54,6 @@ function __main__() {
|
|||
|
||||
read_image_version
|
||||
check_config
|
||||
check_sharelatex_env_vars
|
||||
read_config
|
||||
|
||||
if [[ "$MONGO_ENABLED" == "true" && "$IMAGE_VERSION_MAJOR" -ge 4 ]]; then
|
||||
|
|
12
bin/upgrade
12
bin/upgrade
|
@ -170,10 +170,8 @@ function handle_image_upgrade() {
|
|||
echo "Over-writing config/version with $SEED_IMAGE_VERSION"
|
||||
cp "$TOOLKIT_ROOT/lib/config-seed/version" "$TOOLKIT_ROOT/config/version"
|
||||
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -le 4 && "$SEED_IMAGE_VERSION_MAJOR" -ge 5 ]]; then
|
||||
echo "Renaming environment variables in config/variables.env"
|
||||
prompt "Proceed with the environment variable renaming?"
|
||||
rebrand_sharelatex_env_variables
|
||||
if [[ "$IMAGE_VERSION_MAJOR" -le 4 && "$SEED_IMAGE_VERSION_MAJOR" -ge 5 ]]; then
|
||||
rebrand_sharelatex_env_variables 'variables.env'
|
||||
fi
|
||||
|
||||
## Maybe offer to start services again
|
||||
|
@ -224,6 +222,11 @@ function handle_git_update() {
|
|||
fi
|
||||
}
|
||||
|
||||
function handle_rc_rebranding() {
|
||||
## Rename variables in overleaf.rc SHARELATEX_ -> OVERLEAF_
|
||||
rebrand_sharelatex_env_variables 'overleaf.rc' silent_if_no_match
|
||||
}
|
||||
|
||||
function __main__() {
|
||||
if [[ "${1:-null}" == "help" ]] \
|
||||
|| [[ "${1:-null}" == "--help" ]] ; then
|
||||
|
@ -238,6 +241,7 @@ function __main__() {
|
|||
|
||||
read_seed_image_version
|
||||
read_image_version
|
||||
handle_rc_rebranding
|
||||
handle_image_upgrade
|
||||
|
||||
echo "Done"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue