#!/bin/bash #################################################################################################### #### author: SlickStack ############################################################################ #### link: https://slickstack.io ################################################################### #### mirror: https://mirrors.slickstack.io/bash/ss-update-config.txt ############################### #### path: /var/www/ss-update-config ############################################################### #### destination: n/a (not a boilerplate) ########################################################## #### purpose: Updates ss-config file to current boilerplate version and transfers settings ######### #### module version: Ubuntu 22.04 LTS ############################################################## #### sourced by: n/a ############################################################################### #### bash aliases: ss [update|upgrade] config ###################################################### #################################################################################################### ## YOU CAN SAFELY RUN UPDATES WITH NO CHANGES TO YOUR LEMP MODULE CONFIGURATION FILES ## ## IN CASE YOU ACCIDENTALLY OVERWRITE MODULE FILES SIMPLY RUN SS-INSTALL AGAIN ## #################################################################################################### #### TABLE OF CONTENTS (SS-Update-Config) ########################################################## #################################################################################################### ## this is a brief summary of the different code snippets you will find in this script ## ## each section should be commented so you understand what is being accomplished ## ## A. Build Version ## B. Source SS-Config + SS-Functions ## C. Touch Timestamp File ## D. Message (Begin Script) ## E. Cleanup Temporary Files ## F. Backup Active SS-Config File ## G. Validate Active SS-Config Before Proceeding ## H. Retrieve Latest SS-Config Boilerplate ## I. Install Latest SS-Config Boilerplate (Copies Existing Settings) ## J. Validate Latest SS-Config Boilerplate ## K. Replace SS-Config Placeholders (If Exist) #################################################################################################### #### A. SS-Update-Config: Build Version ############################################################ #################################################################################################### ## this build version ensures compatibility with ss-config boilerplate (from mirrors) ## ## it must match the latest ss-config boilerplate otherwise updating will fail ## SS_UPDATE_CONFIG_BUILD="JUN2023A" #################################################################################################### #### B. SS-Update-Config: Source SS-Config + SS-Functions ########################################## #################################################################################################### ## before anything else we must source the critical variables that power this script ## ## ss-config is setup during ss-install wizard but ss-functions is hardcoded ## ## source ss-config ## source /var/www/ss-config ## source ss-functions ## source /var/www/ss-functions ## BELOW THIS RELIES ON SS-CONFIG AND SS-FUNCTIONS #################################################################################################### #### C. SS-Update-Config: Touch Timestamp File ##################################################### #################################################################################################### ## this is a dummy timestamp file that will remember the last time this script was run ## ## it can be useful for developer reference and is sometimes used by SlickStack ## ss_touch "${TIMESTAMP_SS_UPDATE_CONFIG}" #################################################################################################### #### D. SS-Update-Config: Message (Begin Script) ################################################### #################################################################################################### ## this is a simple message that announces to the shell the purpose of this bash script ## ## it will only be seen by sudo users who manually run this script in the shell ## ss_echo "${COLOR_INFO}Running ss-update-config... ${COLOR_RESET}" #################################################################################################### #### E. SS-Update-Config: Cleanup Temporary Files ################################################## #################################################################################################### ## delete tmp files ## ss_rm "${TMP_SS_CONFIG}" #################################################################################################### #### F. SS-Update-Config: Backup Active SS-Config File ############################################# #################################################################################################### ## this will replicate your current ss-config file (and settings) to the backups dir ## ## the oldest .bak files will be cleaned up periodically by ss-clean-files ## ## SNIPPET: ss-update-config, ss-worker ## UPDATED: 31MAY2022 ## backup ss-config ## CURRENT_TIME=$(date "+%Y.%b.%d-%H:%M:%S") ss_cp /var/www/ss-config /var/www/backups/config/ss-config.bak.${CURRENT_TIME} #################################################################################################### #### G. SS-Update-Config: Validate Active SS-Config Before Proceeding ############################## #################################################################################################### VALIDATE_SS_CONFIG=$(grep 'EOF' "$PATH_SS_CONFIG") ## change to "$SS_EOF" later ## validate ss-config ## if [[ -z "${VALIDATE_SS_CONFIG}" ]]; then ss_echo "${COLOR_ERROR}Exiting ss-update-config: Your current ss-config file is missing or corrupt so update was skipped... ${NOCOLOR}" exit 1 fi #################################################################################################### #### H. SS-Update-Config: Retrieve Latest SS-Config Boilerplate #################################### #################################################################################################### ## variables will only be copied over from the previous ss-config file if they are defined ## ## otherwise default (recommended) options will be used from the new boilerplate ## ## retrieve ss-config-sample ## ss_wget "${TMP_SS_CONFIG}" "${GITHUB_SS_CONFIG_SAMPLE}" VALIDATE_TMP_SS_CONFIG=$(grep 'SS_EOF' "${TMP_SS_CONFIG}" 2> /dev/null) if [[ -z "${VALIDATE_TMP_SS_CONFIG}" ]]; then ss_wget "${TMP_SS_CONFIG}" "${GITLAB_SS_CONFIG_SAMPLE}" fi ## snippet variables ## SS_BUILD_LATEST=$(source /tmp/ss-config; echo "${SS_BUILD}" 2> /dev/null) ## ensure latest (retrieved) ss-config build matches current ss-update build ## if [[ "${SS_BUILD_LATEST}" != "${SS_UPDATE_CONFIG_BUILD}" ]]; then ss_rm "${TMP_SS_CONFIG}" ss_echo "${LIGHTRED}Exiting ss-update-config: There is a version mismatch between this script and public mirrors... ${NOCOLOR}" exit 1 fi #################################################################################################### #### I. SS-Update-Config: Install Latest SS-Config Boilerplate (Copies Existing Settings) ########## #################################################################################################### ## this will update the existing ss-config file to latest boilerplate from our mirrors ## ## all existing options will be safely transferred to the new boilerplate ## ## ss lockdown ## ss_sed "s|\(^SS_LOCKDOWN=\).*|SS_LOCKDOWN=\"$SS_LOCKDOWN\"|g" "${TMP_SS_CONFIG}" ## access settings ## ss_sed "s|\(^SUDO_USER=\).*|SUDO_USER=\"$SUDO_USER\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SUDO_PASSWORD=\).*|SUDO_PASSWORD=\"$SUDO_PASSWORD\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SSH_KEYS=\).*|SSH_KEYS=\"$SSH_KEYS\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SSH_RESTRICT_IP=\).*|SSH_RESTRICT_IP=\"$SSH_RESTRICT_IP\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SSH_IPV4=\).*|SSH_IPV4=\"$SSH_IPV4\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SFTP_USER=\).*|SFTP_USER=\"$SFTP_USER\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SFTP_PASSWORD=\).*|SFTP_PASSWORD=\"$SFTP_PASSWORD\"|g" "${TMP_SS_CONFIG}" ## domain settings ## ss_sed "s|\(^SITE_TLD=\).*|SITE_TLD=\"$SITE_TLD\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SITE_DOMAIN=\).*|SITE_DOMAIN=\"$SITE_DOMAIN\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^SITE_NOINDEX=\).*|SITE_NOINDEX=\"$SITE_NOINDEX\"|g" "${TMP_SS_CONFIG}" ## database settings ## ss_sed "s|\(^DB_NAME=\).*|DB_NAME=\"$DB_NAME\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_USER=\).*|DB_USER=\"$DB_USER\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_PASSWORD=\).*|DB_PASSWORD=\"$DB_PASSWORD\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_PASSWORD_ROOT=\).*|DB_PASSWORD_ROOT=\"$DB_PASSWORD_ROOT\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_HOST=\).*|DB_HOST=\"$DB_HOST\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_PORT=\).*|DB_PORT=\"$DB_PORT\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_PREFIX=\).*|DB_PREFIX=\"$DB_PREFIX\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_CHARSET=\).*|DB_CHARSET=\"$DB_CHARSET\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^DB_COLLATE=\).*|DB_COLLATE=\"$DB_COLLATE\"|g" "${TMP_SS_CONFIG}" ## to be deleted soon ## ## cloudflare settings ## ss_sed "s|\(^CLOUDFLARE_API_KEY=\).*|CLOUDFLARE_API_KEY=\"$CLOUDFLARE_API_KEY\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^CLOUDFLARE_API_EMAIL=\).*|CLOUDFLARE_API_EMAIL=\"$CLOUDFLARE_API_EMAIL\"|g" "${TMP_SS_CONFIG}" ## staging/dev settings ## if [[ -n "$DEV_SITE" ]]; then ss_sed "s|\(^DEV_SITE=\).*|DEV_SITE=\"$DEV_SITE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$DEV_SITE_PROTECT" ]]; then ss_sed "s|\(^DEV_SITE_PROTECT=\).*|DEV_SITE_PROTECT=\"$DEV_SITE_PROTECT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$STAGING_SITE" ]]; then ss_sed "s|\(^STAGING_SITE=\).*|STAGING_SITE=\"$STAGING_SITE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$STAGING_SITE_PROTECT" ]]; then ss_sed "s|\(^STAGING_SITE_PROTECT=\).*|STAGING_SITE_PROTECT=\"$STAGING_SITE_PROTECT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$GUEST_USER" ]]; then ss_sed "s|\(^GUEST_USER=\).*|GUEST_USER=\"$GUEST_USER\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$GUEST_PASSWORD" ]]; then ss_sed "s|\(^GUEST_PASSWORD=\).*|GUEST_PASSWORD=\"$GUEST_PASSWORD\"|g" "${TMP_SS_CONFIG}" fi ## remote backup settings ## if [[ -n "$RCLONE_TYPE" ]]; then ss_sed "s|\(^RCLONE_TYPE=\).*|RCLONE_TYPE=\"$RCLONE_TYPE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_MODE" ]]; then ss_sed "s|\(^RCLONE_MODE=\).*|RCLONE_MODE=\"$RCLONE_MODE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_REMOTE_PATH" ]]; then ss_sed "s|\(^RCLONE_REMOTE_PATH=\).*|RCLONE_REMOTE_PATH=\"$RCLONE_REMOTE_PATH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_CLIENT_ID" ]]; then ss_sed "s|\(^RCLONE_CLIENT_ID=\).*|RCLONE_CLIENT_ID=\"$RCLONE_CLIENT_ID\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_CLIENT_SECRET" ]]; then ss_sed "s|\(^RCLONE_CLIENT_SECRET=\).*|RCLONE_CLIENT_SECRET=\"$RCLONE_CLIENT_SECRET\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_USER" ]]; then ss_sed "s|\(^RCLONE_USER=\).*|RCLONE_USER=\"$RCLONE_USER\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_PASSWORD" ]]; then ss_sed "s|\(^RCLONE_PASSWORD=\).*|RCLONE_PASSWORD=\"$RCLONE_PASSWORD\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_TOKEN" ]]; then ss_sed "s|\(^RCLONE_TOKEN=\).*|RCLONE_TOKEN=\"$RCLONE_TOKEN\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_BACKUP_PATH" ]]; then ss_sed "s|\(^RCLONE_BACKUP_PATH=\).*|RCLONE_BACKUP_PATH=\"$RCLONE_BACKUP_PATH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RCLONE_PARALLEL_TRANSFERS" ]]; then ss_sed "s|\(^RCLONE_PARALLEL_TRANSFERS=\).*|RCLONE_PARALLEL_TRANSFERS=\"$RCLONE_PARALLEL_TRANSFERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RSYNC_REMOTE_HOST" ]]; then ss_sed "s|\(^RSYNC_REMOTE_HOST=\).*|RSYNC_REMOTE_HOST=\"$RSYNC_REMOTE_HOST\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RSYNC_BACKUP_PATH" ]]; then ss_sed "s|\(^RSYNC_BACKUP_PATH=\).*|RSYNC_BACKUP_PATH=\"$RSYNC_BACKUP_PATH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RSYNC_USER" ]]; then ss_sed "s|\(^RSYNC_USER=\).*|RSYNC_USER=\"$RSYNC_USER\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$RSYNC_PASSWORD" ]]; then ss_sed "s|\(^RSYNC_PASSWORD=\).*|RSYNC_PASSWORD=\"$RSYNC_PASSWORD\"|g" "${TMP_SS_CONFIG}" fi ## general settings ## if [[ -n "$SS_APP" ]]; then ss_sed "s|\(^SS_APP=\).*|SS_APP=\"$SS_APP\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_LANGUAGE" ]]; then ss_sed "s|\(^SS_LANGUAGE=\).*|SS_LANGUAGE=\"$SS_LANGUAGE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_PILOT_FILE" ]]; then ss_sed "s|\(^SS_PILOT_FILE=\).*|SS_PILOT_FILE=\"$SS_PILOT_FILE\"|g" "${TMP_SS_CONFIG}" fi ## whitelabel settings ## if [[ -n "$WHITELABEL_BRAND" ]]; then ss_sed "s|\(^WHITELABEL_BRAND=\).*|WHITELABEL_BRAND=\"$WHITELABEL_BRAND\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WHITELABEL_HOMEPAGE" ]]; then ss_sed "s|\(^WHITELABEL_HOMEPAGE=\).*|WHITELABEL_HOMEPAGE=\"$WHITELABEL_HOMEPAGE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WHITELABEL_SUPPORT_URL" ]]; then ss_sed "s|\(^WHITELABEL_SUPPORT_URL=\).*|WHITELABEL_SUPPORT_URL=\"$WHITELABEL_SUPPORT_URL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WHITELABEL_SUPPORT_EMAIL" ]]; then ss_sed "s|\(^WHITELABEL_SUPPORT_EMAIL=\).*|WHITELABEL_SUPPORT_EMAIL=\"$WHITELABEL_SUPPORT_EMAIL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WHITELABEL_BILLING_METHOD" ]]; then ss_sed "s|\(^WHITELABEL_BILLING_METHOD=\).*|WHITELABEL_BILLING_METHOD=\"$WHITELABEL_BILLING_METHOD\"|g" "${TMP_SS_CONFIG}" fi ## others general ## if [[ -n "$SS_ADMINER_PUBLIC" ]]; then ss_sed "s|\(^SS_ADMINER_PUBLIC=\).*|SS_ADMINER_PUBLIC=\"$SS_ADMINER_PUBLIC\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_DATABASE_REMOTE" ]]; then ss_sed "s|\(^SS_DATABASE_REMOTE=\).*|SS_DATABASE_REMOTE=\"$SS_DATABASE_REMOTE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_OBJECT_CACHE" ]]; then ss_sed "s|\(^SS_OBJECT_CACHE=\).*|SS_OBJECT_CACHE=\"$SS_OBJECT_CACHE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_SYNC_DEVELOPMENT" ]]; then ss_sed "s|\(^SS_SYNC_DEVELOPMENT=\).*|SS_SYNC_DEVELOPMENT=\"$SS_SYNC_DEVELOPMENT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_SYNC_STAGING" ]]; then ss_sed "s|\(^SS_SYNC_STAGING=\).*|SS_SYNC_STAGING=\"$SS_SYNC_STAGING\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_TIMEZONE" ]]; then ss_sed "s|\(^SS_TIMEZONE=\).*|SS_TIMEZONE=\"$SS_TIMEZONE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_REMOTE_BACKUPS" ]]; then ss_sed "s|\(^SS_REMOTE_BACKUPS=\).*|SS_REMOTE_BACKUPS=\"$SS_REMOTE_BACKUPS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_REBOOT_MIN_UPTIME" ]]; then ss_sed "s|\(^SS_REBOOT_MIN_UPTIME=\).*|SS_REBOOT_MIN_UPTIME=\"$SS_REBOOT_MIN_UPTIME\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_WORDPRESS_MU_PLUGINS" ]]; then ss_sed "s|\(^SS_WORDPRESS_MU_PLUGINS=\).*|SS_WORDPRESS_MU_PLUGINS=\"$SS_WORDPRESS_MU_PLUGINS\"|g" "${TMP_SS_CONFIG}" fi ## bash script settings ## if [[ -n "$SS_CLEAN_FILES_ROOT_PUBLIC" ]]; then ss_sed "s|\(^SS_CLEAN_FILES_ROOT_PUBLIC=\).*|SS_CLEAN_FILES_ROOT_PUBLIC=\"$SS_CLEAN_FILES_ROOT_PUBLIC\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_CLEAN_FILES_ROOT_PRIVATE" ]]; then ss_sed "s|\(^SS_CLEAN_FILES_ROOT_PRIVATE=\).*|SS_CLEAN_FILES_ROOT_PRIVATE=\"$SS_CLEAN_FILES_ROOT_PRIVATE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_DUMP_FILES_PRODUCTION" ]]; then ss_sed "s|\(^SS_DUMP_FILES_PRODUCTION=\).*|SS_DUMP_FILES_PRODUCTION=\"$SS_DUMP_FILES_PRODUCTION\"|g" "${TMP_SS_CONFIG}" ## deprecated fi if [[ -n "$SS_DUMP_FILES_STAGING" ]]; then ss_sed "s|\(^SS_DUMP_FILES_STAGING=\).*|SS_DUMP_FILES_STAGING=\"$SS_DUMP_FILES_STAGING\"|g" "${TMP_SS_CONFIG}" ## deprecated fi if [[ -n "$SS_DUMP_FILES_DEVELOPMENT" ]]; then ss_sed "s|\(^SS_DUMP_FILES_DEVELOPMENT=\).*|SS_DUMP_FILES_DEVELOPMENT=\"$SS_DUMP_FILES_DEVELOPMENT\"|g" "${TMP_SS_CONFIG}" ## deprecated fi if [[ -n "$SS_INSTALL_NGINX_CONFIG_OVERWRITE_BLOCKS" ]]; then ss_sed "s|\(^SS_INSTALL_NGINX_CONFIG_OVERWRITE_BLOCKS=\).*|SS_INSTALL_NGINX_CONFIG_OVERWRITE_BLOCKS=\"$SS_INSTALL_NGINX_CONFIG_OVERWRITE_BLOCKS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_PHP_PACKAGES_PURGE_FIRST" ]]; then ss_sed "s|\(^SS_INSTALL_PHP_PACKAGES_PURGE_FIRST=\).*|SS_INSTALL_PHP_PACKAGES_PURGE_FIRST=\"$SS_INSTALL_PHP_PACKAGES_PURGE_FIRST\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_PLUGINS" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_PLUGINS=\).*|SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_PLUGINS=\"$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_PLUGINS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_THEMES" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_THEMES=\).*|SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_THEMES=\"$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_BUNDLED_THEMES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_PHP_FILES_ROOT" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_DELETE_PHP_FILES_ROOT=\).*|SS_INSTALL_WORDPRESS_PACKAGES_DELETE_PHP_FILES_ROOT=\"$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_PHP_FILES_ROOT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_ADMIN" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_ADMIN=\).*|SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_ADMIN=\"$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_ADMIN\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_INCLUDES" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_INCLUDES=\).*|SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_INCLUDES=\"$SS_INSTALL_WORDPRESS_PACKAGES_DELETE_WP_INCLUDES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INSTALL_WORDPRESS_PACKAGES_CLEANUP_OPTIONS" ]]; then ss_sed "s|\(^SS_INSTALL_WORDPRESS_PACKAGES_CLEANUP_OPTIONS=\).*|SS_INSTALL_WORDPRESS_PACKAGES_CLEANUP_OPTIONS=\"$SS_INSTALL_WORDPRESS_PACKAGES_CLEANUP_OPTIONS\"|g" "${TMP_SS_CONFIG}" fi ## ssl settings ## if [[ -n "$SSL_TYPE" ]]; then ss_sed "s|\(^SSL_TYPE=\).*|SSL_TYPE=\"$SSL_TYPE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SSL_PROTOCOLS" ]]; then ss_sed "s|\(^SSL_PROTOCOLS=\).*|SSL_PROTOCOLS=\"$SSL_PROTOCOLS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SSL_CIPHERS" ]]; then ss_sed "s|\(^SSL_CIPHERS=\).*|SSL_CIPHERS=\"$SSL_CIPHERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SSL_SESSION_TIMEOUT" ]]; then ss_sed "s|\(^SSL_SESSION_TIMEOUT=\).*|SSL_SESSION_TIMEOUT=\"$SSL_SESSION_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SSL_SESSION_CACHE" ]]; then ss_sed "s|\(^SSL_SESSION_CACHE=\).*|SSL_SESSION_CACHE=\"$SSL_SESSION_CACHE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SSL_BUFFER_SIZE" ]]; then ss_sed "s|\(^SSL_BUFFER_SIZE=\).*|SSL_BUFFER_SIZE=\"$SSL_BUFFER_SIZE\"|g" "${TMP_SS_CONFIG}" fi ss_sed "s|\(^CSR_COUNTRY=\).*|CSR_COUNTRY=\"$CSR_COUNTRY\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^CSR_STATE=\).*|CSR_STATE=\"$CSR_STATE\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^CSR_CITY=\).*|CSR_CITY=\"$CSR_CITY\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^CSR_COMPANY=\).*|CSR_COMPANY=\"$CSR_COMPANY\"|g" "${TMP_SS_CONFIG}" ss_sed "s|\(^CSR_DEPT=\).*|CSR_DEPT=\"$CSR_DEPT\"|g" "${TMP_SS_CONFIG}" ## wordpress settings ## if [[ -n "$WP_CRON_METHOD" ]]; then ss_sed "s|\(^WP_CRON_METHOD=\).*|WP_CRON_METHOD=\"$WP_CRON_METHOD\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_CRON_INTERVAL" ]]; then ss_sed "s|\(^WP_CRON_INTERVAL=\).*|WP_CRON_INTERVAL=\"$WP_CRON_INTERVAL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_MULTISITE" ]]; then ss_sed "s|\(^WP_MULTISITE=\).*|WP_MULTISITE=\"$WP_MULTISITE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_MULTISITE_SUBDOMAINS" ]]; then ss_sed "s|\(^WP_MULTISITE_SUBDOMAINS=\).*|WP_MULTISITE_SUBDOMAINS=\"$WP_MULTISITE_SUBDOMAINS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_MULTISITE_DOMAIN_MAPPING" ]]; then ss_sed "s|\(^WP_MULTISITE_DOMAIN_MAPPING=\).*|WP_MULTISITE_DOMAIN_MAPPING=\"$WP_MULTISITE_DOMAIN_MAPPING\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_POST_REVISIONS" ]]; then ss_sed "s|\(^WP_POST_REVISIONS=\).*|WP_POST_REVISIONS=\"$WP_POST_REVISIONS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_AUTOSAVE_INTERVAL" ]]; then ss_sed "s|\(^WP_AUTOSAVE_INTERVAL=\).*|WP_AUTOSAVE_INTERVAL=\"$WP_AUTOSAVE_INTERVAL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_HTTP_BLOCK_EXTERNAL" ]]; then ss_sed "s|\(^WP_HTTP_BLOCK_EXTERNAL=\).*|WP_HTTP_BLOCK_EXTERNAL=\"$WP_HTTP_BLOCK_EXTERNAL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_ACCESSIBLE_HOSTS" ]]; then ss_sed "s|\(^WP_ACCESSIBLE_HOSTS=\).*|WP_ACCESSIBLE_HOSTS=\"$WP_ACCESSIBLE_HOSTS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_DISALLOW_FILE_EDIT" ]]; then ss_sed "s|\(^WP_DISALLOW_FILE_EDIT=\).*|WP_DISALLOW_FILE_EDIT=\"$WP_DISALLOW_FILE_EDIT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_DISALLOW_FILE_MODS" ]]; then ss_sed "s|\(^WP_DISALLOW_FILE_MODS=\).*|WP_DISALLOW_FILE_MODS=\"$WP_DISALLOW_FILE_MODS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_ALLOW_UNFILTERED_UPLOADS" ]]; then ss_sed "s|\(^WP_ALLOW_UNFILTERED_UPLOADS=\).*|WP_ALLOW_UNFILTERED_UPLOADS=\"$WP_ALLOW_UNFILTERED_UPLOADS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_DEFAULT_THEME" ]]; then ss_sed "s|\(^WP_DEFAULT_THEME=\).*|WP_DEFAULT_THEME=\"$WP_DEFAULT_THEME\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_PLUGIN_BLACKLIST" ]]; then ss_sed "s|\(^WP_PLUGIN_BLACKLIST=\).*|WP_PLUGIN_BLACKLIST=\"$WP_PLUGIN_BLACKLIST\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WP_PLUGIN_BLACKLIST_SOURCE" ]]; then ss_sed "s|\(^WP_PLUGIN_BLACKLIST_SOURCE=\).*|WP_PLUGIN_BLACKLIST_SOURCE=\"$WP_PLUGIN_BLACKLIST_SOURCE\"|g" "${TMP_SS_CONFIG}" fi ## nginx settings ## if [[ -n "$NGINX_ACCESS_LOG" ]]; then ss_sed "s|\(^NGINX_ACCESS_LOG=\).*|NGINX_ACCESS_LOG=\"$NGINX_ACCESS_LOG\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_WORKER_RLIMIT_NOFILE" ]]; then ss_sed "s|\(^NGINX_WORKER_RLIMIT_NOFILE=\).*|NGINX_WORKER_RLIMIT_NOFILE=\"$NGINX_WORKER_RLIMIT_NOFILE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_WORKER_CONNECTIONS" ]]; then ss_sed "s|\(^NGINX_WORKER_CONNECTIONS=\).*|NGINX_WORKER_CONNECTIONS=\"$NGINX_WORKER_CONNECTIONS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_SERVER_NAMES_HASH_BUCKET_SIZE" ]]; then ss_sed "s|\(^NGINX_SERVER_NAMES_HASH_BUCKET_SIZE=\).*|NGINX_SERVER_NAMES_HASH_BUCKET_SIZE=\"$NGINX_SERVER_NAMES_HASH_BUCKET_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_SERVER_NAMES_MAX_HASH_SIZE" ]]; then ss_sed "s|\(^NGINX_SERVER_NAMES_MAX_HASH_SIZE=\).*|NGINX_SERVER_NAMES_MAX_HASH_SIZE=\"$NGINX_SERVER_NAMES_MAX_HASH_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_TYPES_MAX_HASH_SIZE" ]]; then ss_sed "s|\(^NGINX_TYPES_MAX_HASH_SIZE=\).*|NGINX_TYPES_MAX_HASH_SIZE=\"$NGINX_TYPES_MAX_HASH_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_CLIENT_MAX_BODY_SIZE" ]]; then ss_sed "s|\(^NGINX_CLIENT_MAX_BODY_SIZE=\).*|NGINX_CLIENT_MAX_BODY_SIZE=\"$NGINX_CLIENT_MAX_BODY_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_CLIENT_BODY_BUFFER_SIZE" ]]; then ss_sed "s|\(^NGINX_CLIENT_BODY_BUFFER_SIZE=\).*|NGINX_CLIENT_BODY_BUFFER_SIZE=\"$NGINX_CLIENT_BODY_BUFFER_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_CLIENT_HEADER_BUFFER_SIZE" ]]; then ss_sed "s|\(^NGINX_CLIENT_HEADER_BUFFER_SIZE=\).*|NGINX_CLIENT_HEADER_BUFFER_SIZE=\"$NGINX_CLIENT_HEADER_BUFFER_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_LARGE_CLIENT_HEADER_BUFFERS" ]]; then ss_sed "s|\(^NGINX_LARGE_CLIENT_HEADER_BUFFERS=\).*|NGINX_LARGE_CLIENT_HEADER_BUFFERS=\"$NGINX_LARGE_CLIENT_HEADER_BUFFERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_CLIENT_BODY_TIMEOUT" ]]; then ss_sed "s|\(^NGINX_CLIENT_BODY_TIMEOUT=\).*|NGINX_CLIENT_BODY_TIMEOUT=\"$NGINX_CLIENT_BODY_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_CLIENT_HEADER_TIMEOUT" ]]; then ss_sed "s|\(^NGINX_CLIENT_HEADER_TIMEOUT=\).*|NGINX_CLIENT_HEADER_TIMEOUT=\"$NGINX_CLIENT_HEADER_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_KEEPALIVE_TIMEOUT" ]]; then ss_sed "s|\(^NGINX_KEEPALIVE_TIMEOUT=\).*|NGINX_KEEPALIVE_TIMEOUT=\"$NGINX_KEEPALIVE_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_KEEPALIVE_REQUESTS" ]]; then ss_sed "s|\(^NGINX_KEEPALIVE_REQUESTS=\).*|NGINX_KEEPALIVE_REQUESTS=\"$NGINX_KEEPALIVE_REQUESTS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$NGINX_SEND_TIMEOUT" ]]; then ss_sed "s|\(^NGINX_SEND_TIMEOUT=\).*|NGINX_SEND_TIMEOUT=\"$NGINX_SEND_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi ## open file cache settings ## if [[ -n "$OPEN_FILE_CACHE_MAX" ]]; then ss_sed "s|\(^OPEN_FILE_CACHE_MAX=\).*|OPEN_FILE_CACHE_MAX=\"$OPEN_FILE_CACHE_MAX\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPEN_FILE_CACHE_INACTIVE" ]]; then ss_sed "s|\(^OPEN_FILE_CACHE_INACTIVE=\).*|OPEN_FILE_CACHE_INACTIVE=\"$OPEN_FILE_CACHE_INACTIVE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPEN_FILE_CACHE_MIN_USES" ]]; then ss_sed "s|\(^OPEN_FILE_CACHE_MIN_USES=\).*|OPEN_FILE_CACHE_MIN_USES=\"$OPEN_FILE_CACHE_MIN_USES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPEN_FILE_CACHE_VALID" ]]; then ss_sed "s|\(^OPEN_FILE_CACHE_VALID=\).*|OPEN_FILE_CACHE_VALID=\"$OPEN_FILE_CACHE_VALID\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPEN_FILE_CACHE_ERRORS" ]]; then ss_sed "s|\(^OPEN_FILE_CACHE_ERRORS=\).*|OPEN_FILE_CACHE_ERRORS=\"$OPEN_FILE_CACHE_ERRORS\"|g" "${TMP_SS_CONFIG}" fi ## fastcgi cache settings ## if [[ -n "$FCGI_CACHE" ]]; then ss_sed "s|\(^FCGI_CACHE=\).*|FCGI_CACHE=\"$FCGI_CACHE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CACHE_VALID" ]]; then ss_sed "s|\(^FCGI_CACHE_VALID=\).*|FCGI_CACHE_VALID=\"$FCGI_CACHE_VALID\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CACHE_INACTIVE" ]]; then ss_sed "s|\(^FCGI_CACHE_INACTIVE=\).*|FCGI_CACHE_INACTIVE=\"$FCGI_CACHE_INACTIVE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CACHE_MEMORY" ]]; then ss_sed "s|\(^FCGI_CACHE_MEMORY=\).*|FCGI_CACHE_MEMORY=\"$FCGI_CACHE_MEMORY\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CACHE_MAX_SIZE" ]]; then ss_sed "s|\(^FCGI_CACHE_MAX_SIZE=\).*|FCGI_CACHE_MAX_SIZE=\"$FCGI_CACHE_MAX_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CACHE_TMPFS" ]]; then ss_sed "s|\(^FCGI_CACHE_TMPFS=\).*|FCGI_CACHE_TMPFS=\"$FCGI_CACHE_TMPFS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_CONNECT_TIMEOUT" ]]; then ss_sed "s|\(^FCGI_CONNECT_TIMEOUT=\).*|FCGI_CONNECT_TIMEOUT=\"$FCGI_CONNECT_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_READ_TIMEOUT" ]]; then ss_sed "s|\(^FCGI_READ_TIMEOUT=\).*|FCGI_READ_TIMEOUT=\"$FCGI_READ_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_SEND_TIMEOUT" ]]; then ss_sed "s|\(^FCGI_SEND_TIMEOUT=\).*|FCGI_SEND_TIMEOUT=\"$FCGI_SEND_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_BUFFERS" ]]; then ss_sed "s|\(^FCGI_BUFFERS=\).*|FCGI_BUFFERS=\"$FCGI_BUFFERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_BUFFER_SIZE" ]]; then ss_sed "s|\(^FCGI_BUFFER_SIZE=\).*|FCGI_BUFFER_SIZE=\"$FCGI_BUFFER_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_BUSY_BUFFERS_SIZE" ]]; then ss_sed "s|\(^FCGI_BUSY_BUFFERS_SIZE=\).*|FCGI_BUSY_BUFFERS_SIZE=\"$FCGI_BUSY_BUFFERS_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FCGI_TEMP_FILE_WRITE_SIZE" ]]; then ss_sed "s|\(^FCGI_TEMP_FILE_WRITE_SIZE=\).*|FCGI_TEMP_FILE_WRITE_SIZE=\"$FCGI_TEMP_FILE_WRITE_SIZE\"|g" "${TMP_SS_CONFIG}" fi ## mysql settings ## if [[ -n "$SQL_MODE" ]]; then ss_sed "s|\(^SQL_MODE=\).*|SQL_MODE=\"$SQL_MODE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_MAX_ALLOWED_PACKET" ]]; then ss_sed "s|\(^SQL_MAX_ALLOWED_PACKET=\).*|SQL_MAX_ALLOWED_PACKET=\"$SQL_MAX_ALLOWED_PACKET\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_CONNECT_TIMEOUT" ]]; then ss_sed "s|\(^SQL_CONNECT_TIMEOUT=\).*|SQL_CONNECT_TIMEOUT=\"$SQL_CONNECT_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_WAIT_TIMEOUT" ]]; then ss_sed "s|\(^SQL_WAIT_TIMEOUT=\).*|SQL_WAIT_TIMEOUT=\"$SQL_WAIT_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_INTERACTIVE_TIMEOUT" ]]; then ss_sed "s|\(^SQL_INTERACTIVE_TIMEOUT=\).*|SQL_INTERACTIVE_TIMEOUT=\"$SQL_INTERACTIVE_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_NET_READ_TIMEOUT" ]]; then ss_sed "s|\(^SQL_NET_READ_TIMEOUT=\).*|SQL_NET_READ_TIMEOUT=\"$SQL_NET_READ_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SQL_NET_WRITE_TIMEOUT" ]]; then ss_sed "s|\(^SQL_NET_WRITE_TIMEOUT=\).*|SQL_NET_WRITE_TIMEOUT=\"$SQL_NET_WRITE_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INNODB_BUFFER_POOL_SIZE" ]]; then ss_sed "s|\(^INNODB_BUFFER_POOL_SIZE=\).*|INNODB_BUFFER_POOL_SIZE=\"$INNODB_BUFFER_POOL_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INNODB_LOG_FILE_SIZE" ]]; then ss_sed "s|\(^INNODB_LOG_FILE_SIZE=\).*|INNODB_LOG_FILE_SIZE=\"$INNODB_LOG_FILE_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INNODB_LOG_FILES_IN_GROUP" ]]; then ss_sed "s|\(^INNODB_LOG_FILES_IN_GROUP=\).*|INNODB_LOG_FILES_IN_GROUP=\"$INNODB_LOG_FILES_IN_GROUP\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INNODB_FLUSH_LOG_AT_TRX_COMMIT" ]]; then ss_sed "s|\(^INNODB_FLUSH_LOG_AT_TRX_COMMIT=\).*|INNODB_FLUSH_LOG_AT_TRX_COMMIT=\"$INNODB_FLUSH_LOG_AT_TRX_COMMIT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INNODB_FLUSH_METHOD" ]]; then ss_sed "s|\(^INNODB_FLUSH_METHOD=\).*|INNODB_FLUSH_METHOD=\"$INNODB_FLUSH_METHOD\"|g" "${TMP_SS_CONFIG}" fi ## innodb flush method fix for mysql 8.0 upgrades from 5.7 (etc) ## if [[ "${SYSTEM_UBUNTU_VERSION}" == "20.04" ]]; then ss_sed "s#INNODB_FLUSH_METHOD="O_DIRECT"#INNODB_FLUSH_METHOD="O_DIRECT_NO_FSYNC"#g" "${TMP_SS_CONFIG}" fi if [[ "${SYSTEM_UBUNTU_VERSION}" == "22.04" ]]; then ss_sed "s#INNODB_FLUSH_METHOD="O_DIRECT"#INNODB_FLUSH_METHOD="O_DIRECT_NO_FSYNC"#g" "${TMP_SS_CONFIG}" fi ## php settings ## if [[ -n "$PHP_EXTENSIONS" ]]; then ss_sed "s|\(^PHP_EXTENSIONS=\).*|PHP_EXTENSIONS=\"$PHP_EXTENSIONS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_PRECISION" ]]; then ss_sed "s|\(^PHP_PRECISION=\).*|PHP_PRECISION=\"$PHP_PRECISION\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_OUTPUT_BUFFERING" ]]; then ss_sed "s|\(^PHP_OUTPUT_BUFFERING=\).*|PHP_OUTPUT_BUFFERING=\"$PHP_OUTPUT_BUFFERING\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_UNSERIALIZE_MAX_DEPTH" ]]; then ss_sed "s|\(^PHP_UNSERIALIZE_MAX_DEPTH=\).*|PHP_UNSERIALIZE_MAX_DEPTH=\"$PHP_UNSERIALIZE_MAX_DEPTH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_SERIALIZE_PRECISION" ]]; then ss_sed "s|\(^PHP_SERIALIZE_PRECISION=\).*|PHP_SERIALIZE_PRECISION=\"$PHP_SERIALIZE_PRECISION\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_DISABLE_FUNCTIONS" ]]; then ss_sed "s|\(^PHP_DISABLE_FUNCTIONS=\).*|PHP_DISABLE_FUNCTIONS=\"$PHP_DISABLE_FUNCTIONS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_DISABLE_CLASSES" ]]; then ss_sed "s|\(^PHP_DISABLE_CLASSES=\).*|PHP_DISABLE_CLASSES=\"$PHP_DISABLE_CLASSES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MAX_EXECUTION_TIME" ]]; then ss_sed "s|\(^PHP_MAX_EXECUTION_TIME=\).*|PHP_MAX_EXECUTION_TIME=\"$PHP_MAX_EXECUTION_TIME\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MAX_INPUT_TIME" ]]; then ss_sed "s|\(^PHP_MAX_INPUT_TIME=\).*|PHP_MAX_INPUT_TIME=\"$PHP_MAX_INPUT_TIME\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MAX_INPUT_NESTING_LEVEL" ]]; then ss_sed "s|\(^PHP_MAX_INPUT_NESTING_LEVEL=\).*|PHP_MAX_INPUT_NESTING_LEVEL=\"$PHP_MAX_INPUT_NESTING_LEVEL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MAX_INPUT_VARS" ]]; then ss_sed "s|\(^PHP_MAX_INPUT_VARS=\).*|PHP_MAX_INPUT_VARS=\"$PHP_MAX_INPUT_VARS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MEMORY_LIMIT" ]]; then ss_sed "s|\(^PHP_MEMORY_LIMIT=\).*|PHP_MEMORY_LIMIT=\"$PHP_MEMORY_LIMIT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_POST_MAX_SIZE" ]]; then ss_sed "s|\(^PHP_POST_MAX_SIZE=\).*|PHP_POST_MAX_SIZE=\"$PHP_POST_MAX_SIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_UPLOAD_MAX_FILESIZE" ]]; then ss_sed "s|\(^PHP_UPLOAD_MAX_FILESIZE=\).*|PHP_UPLOAD_MAX_FILESIZE=\"$PHP_UPLOAD_MAX_FILESIZE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_MAX_FILE_UPLOADS" ]]; then ss_sed "s|\(^PHP_MAX_FILE_UPLOADS=\).*|PHP_MAX_FILE_UPLOADS=\"$PHP_MAX_FILE_UPLOADS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_ALLOW_URL_FOPEN" ]]; then ss_sed "s|\(^PHP_ALLOW_URL_FOPEN=\).*|PHP_ALLOW_URL_FOPEN=\"$PHP_ALLOW_URL_FOPEN\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$PHP_DEFAULT_SOCKET_TIMEOUT" ]]; then ss_sed "s|\(^PHP_DEFAULT_SOCKET_TIMEOUT=\).*|PHP_DEFAULT_SOCKET_TIMEOUT=\"$PHP_DEFAULT_SOCKET_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi ## fpm settings ## if [[ -n "$FPM_EMERGENCY_RESTART_THRESHOLD" ]]; then ss_sed "s|\(^FPM_EMERGENCY_RESTART_THRESHOLD=\).*|FPM_EMERGENCY_RESTART_THRESHOLD=\"$FPM_EMERGENCY_RESTART_THRESHOLD\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_EMERGENCY_RESTART_INTERVAL" ]]; then ss_sed "s|\(^FPM_EMERGENCY_RESTART_INTERVAL=\).*|FPM_EMERGENCY_RESTART_INTERVAL=\"$FPM_EMERGENCY_RESTART_INTERVAL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_PROCESS_CONTROL_TIMEOUT" ]]; then ss_sed "s|\(^FPM_PROCESS_CONTROL_TIMEOUT=\).*|FPM_PROCESS_CONTROL_TIMEOUT=\"$FPM_PROCESS_CONTROL_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_PROCESS_MAX" ]]; then ss_sed "s|\(^FPM_PROCESS_MAX=\).*|FPM_PROCESS_MAX=\"$FPM_PROCESS_MAX\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_PROCESS_PRIORITY" ]]; then ss_sed "s|\(^FPM_PROCESS_PRIORITY=\).*|FPM_PROCESS_PRIORITY=\"$FPM_PROCESS_PRIORITY\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_RLIMIT_FILES" ]]; then ss_sed "s|\(^FPM_RLIMIT_FILES=\).*|FPM_RLIMIT_FILES=\"$FPM_RLIMIT_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_RLIMIT_CORE" ]]; then ss_sed "s|\(^FPM_RLIMIT_CORE=\).*|FPM_RLIMIT_CORE=\"$FPM_RLIMIT_CORE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$FPM_SYSTEMD_INTERVAL" ]]; then ss_sed "s|\(^FPM_SYSTEMD_INTERVAL=\).*|FPM_SYSTEMD_INTERVAL=\"$FPM_SYSTEMD_INTERVAL\"|g" "${TMP_SS_CONFIG}" fi ## www pool settings ## if [[ -n "$WWW_LISTEN_BACKLOG" ]]; then ss_sed "s|\(^WWW_LISTEN_BACKLOG=\).*|WWW_LISTEN_BACKLOG=\"$WWW_LISTEN_BACKLOG\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MODE" ]]; then ss_sed "s|\(^WWW_PM_MODE=\).*|WWW_PM_MODE=\"$WWW_PM_MODE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MAX_CHILDREN" ]]; then ss_sed "s|\(^WWW_PM_MAX_CHILDREN=\).*|WWW_PM_MAX_CHILDREN=\"$WWW_PM_MAX_CHILDREN\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_START_SERVERS" ]]; then ss_sed "s|\(^WWW_PM_START_SERVERS=\).*|WWW_PM_START_SERVERS=\"$WWW_PM_START_SERVERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MIN_SPARE_SERVERS" ]]; then ss_sed "s|\(^WWW_PM_MIN_SPARE_SERVERS=\).*|WWW_PM_MIN_SPARE_SERVERS=\"$WWW_PM_MIN_SPARE_SERVERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MAX_SPARE_SERVERS" ]]; then ss_sed "s|\(^WWW_PM_MAX_SPARE_SERVERS=\).*|WWW_PM_MAX_SPARE_SERVERS=\"$WWW_PM_MAX_SPARE_SERVERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MAX_SPAWN_RATE" ]]; then ss_sed "s|\(^WWW_PM_MAX_SPAWN_RATE=\).*|WWW_PM_MAX_SPAWN_RATE=\"$WWW_PM_MAX_SPAWN_RATE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_PROCESS_IDLE_TIMEOUT" ]]; then ss_sed "s|\(^WWW_PM_PROCESS_IDLE_TIMEOUT=\).*|WWW_PM_PROCESS_IDLE_TIMEOUT=\"$WWW_PM_PROCESS_IDLE_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_PM_MAX_REQUESTS" ]]; then ss_sed "s|\(^WWW_PM_MAX_REQUESTS=\).*|WWW_PM_MAX_REQUESTS=\"$WWW_PM_MAX_REQUESTS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_REQUEST_TERMINATE_TIMEOUT" ]]; then ss_sed "s|\(^WWW_REQUEST_TERMINATE_TIMEOUT=\).*|WWW_REQUEST_TERMINATE_TIMEOUT=\"$WWW_REQUEST_TERMINATE_TIMEOUT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_RLIMIT_FILES" ]]; then ss_sed "s|\(^WWW_RLIMIT_FILES=\).*|WWW_RLIMIT_FILES=\"$WWW_RLIMIT_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$WWW_RLIMIT_CORE" ]]; then ss_sed "s|\(^WWW_RLIMIT_CORE=\).*|WWW_RLIMIT_CORE=\"$WWW_RLIMIT_CORE\"|g" "${TMP_SS_CONFIG}" fi ## opcache settings ## if [[ -n "$OPCACHE_MEMORY_CONSUMPTION" ]]; then ss_sed "s|\(^OPCACHE_MEMORY_CONSUMPTION=\).*|OPCACHE_MEMORY_CONSUMPTION=\"$OPCACHE_MEMORY_CONSUMPTION\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_INTERNED_STRINGS_BUFFER" ]]; then ss_sed "s|\(^OPCACHE_INTERNED_STRINGS_BUFFER=\).*|OPCACHE_INTERNED_STRINGS_BUFFER=\"$OPCACHE_INTERNED_STRINGS_BUFFER\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_MAX_ACCELERATED_FILES" ]]; then ss_sed "s|\(^OPCACHE_MAX_ACCELERATED_FILES=\).*|OPCACHE_MAX_ACCELERATED_FILES=\"$OPCACHE_MAX_ACCELERATED_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_MAX_WASTED_PERCENTAGE" ]]; then ss_sed "s|\(^OPCACHE_MAX_WASTED_PERCENTAGE=\).*|OPCACHE_MAX_WASTED_PERCENTAGE=\"$OPCACHE_MAX_WASTED_PERCENTAGE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_REVALIDATE_FREQUENCY" ]]; then ss_sed "s|\(^OPCACHE_REVALIDATE_FREQUENCY=\).*|OPCACHE_REVALIDATE_FREQUENCY=\"$OPCACHE_REVALIDATE_FREQUENCY\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_HUGE_CODE_PAGES" ]]; then ss_sed "s|\(^OPCACHE_HUGE_CODE_PAGES=\).*|OPCACHE_HUGE_CODE_PAGES=\"$OPCACHE_HUGE_CODE_PAGES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_PRELOAD" ]]; then ss_sed "s|\(^OPCACHE_PRELOAD=\).*|OPCACHE_PRELOAD=\"$OPCACHE_PRELOAD\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$OPCACHE_BLACKLIST_FILENAME" ]]; then ss_sed "s|\(^OPCACHE_BLACKLIST_FILENAME=\).*|OPCACHE_BLACKLIST_FILENAME=\"$OPCACHE_BLACKLIST_FILENAME\"|g" "${TMP_SS_CONFIG}" fi ## interval settings ## if [[ -n "$INTERVAL_SS_CHECK" ]]; then ss_sed "s|\(^INTERVAL_SS_CHECK=\).*|INTERVAL_SS_CHECK=\"$INTERVAL_SS_CHECK\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_CLEAN_DATABASE" ]]; then ss_sed "s|\(^INTERVAL_SS_CLEAN_DATABASE=\).*|INTERVAL_SS_CLEAN_DATABASE=\"$INTERVAL_SS_CLEAN_DATABASE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_CLEAN_FILES" ]]; then ss_sed "s|\(^INTERVAL_SS_CLEAN_FILES=\).*|INTERVAL_SS_CLEAN_FILES=\"$INTERVAL_SS_CLEAN_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_DUMP_DATABASE" ]]; then ss_sed "s|\(^INTERVAL_SS_DUMP_DATABASE=\).*|INTERVAL_SS_DUMP_DATABASE=\"$INTERVAL_SS_DUMP_DATABASE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_DUMP_FILES" ]]; then ss_sed "s|\(^INTERVAL_SS_DUMP_FILES=\).*|INTERVAL_SS_DUMP_FILES=\"$INTERVAL_SS_DUMP_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_EMPTY_LOGS" ]]; then ss_sed "s|\(^INTERVAL_SS_EMPTY_LOGS=\).*|INTERVAL_SS_EMPTY_LOGS=\"$INTERVAL_SS_EMPTY_LOGS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_ENCRYPT_ACME" ]]; then ss_sed "s|\(^INTERVAL_SS_ENCRYPT_ACME=\).*|INTERVAL_SS_ENCRYPT_ACME=\"$INTERVAL_SS_ENCRYPT_ACME\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_ENCRYPT_CERTBOT" ]]; then ss_sed "s|\(^INTERVAL_SS_ENCRYPT_CERTBOT=\).*|INTERVAL_SS_ENCRYPT_CERTBOT=\"$INTERVAL_SS_ENCRYPT_CERTBOT\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_ENCRYPT_OPENSSL" ]]; then ss_sed "s|\(^INTERVAL_SS_ENCRYPT_OPENSSL=\).*|INTERVAL_SS_ENCRYPT_OPENSSL=\"$INTERVAL_SS_ENCRYPT_OPENSSL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_ADMINER" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_ADMINER=\).*|INTERVAL_SS_INSTALL_ADMINER=\"$INTERVAL_SS_INSTALL_ADMINER\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_BASH" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_BASH=\).*|INTERVAL_SS_INSTALL_UBUNTU_BASH=\"$INTERVAL_SS_INSTALL_UBUNTU_BASH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_CRONTAB" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_CRONTAB=\).*|INTERVAL_SS_INSTALL_UBUNTU_CRONTAB=\"$INTERVAL_SS_INSTALL_UBUNTU_CRONTAB\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_KERNEL" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_KERNEL=\).*|INTERVAL_SS_INSTALL_UBUNTU_KERNEL=\"$INTERVAL_SS_INSTALL_UBUNTU_KERNEL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_SSH" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_SSH=\).*|INTERVAL_SS_INSTALL_UBUNTU_SSH=\"$INTERVAL_SS_INSTALL_UBUNTU_SSH\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_SWAPFILE" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_SWAPFILE=\).*|INTERVAL_SS_INSTALL_UBUNTU_SWAPFILE=\"$INTERVAL_SS_INSTALL_UBUNTU_SWAPFILE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_USERS" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_USERS=\).*|INTERVAL_SS_INSTALL_UBUNTU_USERS=\"$INTERVAL_SS_INSTALL_UBUNTU_USERS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UBUNTU_UTILS" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UBUNTU_UTILS=\).*|INTERVAL_SS_INSTALL_UBUNTU_UTILS=\"$INTERVAL_SS_INSTALL_UBUNTU_UTILS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UFW_CONFIG" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UFW_CONFIG=\).*|INTERVAL_SS_INSTALL_UFW_CONFIG=\"$INTERVAL_SS_INSTALL_UFW_CONFIG\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_UFW_PACKAGES" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_UFW_PACKAGES=\).*|INTERVAL_SS_INSTALL_UFW_PACKAGES=\"$INTERVAL_SS_INSTALL_UFW_PACKAGES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_WORDPRESS_CLI" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_WORDPRESS_CLI=\).*|INTERVAL_SS_INSTALL_WORDPRESS_CLI=\"$INTERVAL_SS_INSTALL_WORDPRESS_CLI\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_WORDPRESS_CONFIG" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_WORDPRESS_CONFIG=\).*|INTERVAL_SS_INSTALL_WORDPRESS_CONFIG=\"$INTERVAL_SS_INSTALL_WORDPRESS_CONFIG\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_WORDPRESS_PACKAGES" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_WORDPRESS_PACKAGES=\).*|INTERVAL_SS_INSTALL_WORDPRESS_PACKAGES=\"$INTERVAL_SS_INSTALL_WORDPRESS_PACKAGES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_INSTALL_WORDPRESS_MU_PLUGINS" ]]; then ss_sed "s|\(^INTERVAL_SS_INSTALL_WORDPRESS_MU_PLUGINS=\).*|INTERVAL_SS_INSTALL_WORDPRESS_MU_PLUGINS=\"$INTERVAL_SS_INSTALL_WORDPRESS_MU_PLUGINS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_OPTIMIZE_DATABASE" ]]; then ss_sed "s|\(^INTERVAL_SS_OPTIMIZE_DATABASE=\).*|INTERVAL_SS_OPTIMIZE_DATABASE=\"$INTERVAL_SS_OPTIMIZE_DATABASE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_OPTIMIZE_FILES" ]]; then ss_sed "s|\(^INTERVAL_SS_OPTIMIZE_FILES=\).*|INTERVAL_SS_OPTIMIZE_FILES=\"$INTERVAL_SS_OPTIMIZE_FILES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_PERMS" ]]; then ss_sed "s|\(^INTERVAL_SS_PERMS=\).*|INTERVAL_SS_PERMS=\"$INTERVAL_SS_PERMS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_PURGE_NGINX" ]]; then ss_sed "s|\(^INTERVAL_SS_PURGE_NGINX=\).*|INTERVAL_SS_PURGE_NGINX=\"$INTERVAL_SS_PURGE_NGINX\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_PURGE_OPCACHE" ]]; then ss_sed "s|\(^INTERVAL_SS_PURGE_OPCACHE=\).*|INTERVAL_SS_PURGE_OPCACHE=\"$INTERVAL_SS_PURGE_OPCACHE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_PURGE_REDIS" ]]; then ss_sed "s|\(^INTERVAL_SS_PURGE_REDIS=\).*|INTERVAL_SS_PURGE_REDIS=\"$INTERVAL_SS_PURGE_REDIS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_PURGE_TRANSIENTS" ]]; then ss_sed "s|\(^INTERVAL_SS_PURGE_TRANSIENTS=\).*|INTERVAL_SS_PURGE_TRANSIENTS=\"$INTERVAL_SS_PURGE_TRANSIENTS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_REBOOT_MACHINE" ]]; then ss_sed "s|\(^INTERVAL_SS_REBOOT_MACHINE=\).*|INTERVAL_SS_REBOOT_MACHINE=\"$INTERVAL_SS_REBOOT_MACHINE\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_REMOTE_BACKUP" ]]; then ss_sed "s|\(^INTERVAL_SS_REMOTE_BACKUP=\).*|INTERVAL_SS_REMOTE_BACKUP=\"$INTERVAL_SS_REMOTE_BACKUP\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESET_PASSWORD_SFTP" ]]; then ss_sed "s|\(^INTERVAL_SS_RESET_PASSWORD_SFTP=\).*|INTERVAL_SS_RESET_PASSWORD_SFTP=\"$INTERVAL_SS_RESET_PASSWORD_SFTP\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESTART_MYSQL" ]]; then ss_sed "s|\(^INTERVAL_SS_RESTART_MYSQL=\).*|INTERVAL_SS_RESTART_MYSQL=\"$INTERVAL_SS_RESTART_MYSQL\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESTART_NGINX" ]]; then ss_sed "s|\(^INTERVAL_SS_RESTART_NGINX=\).*|INTERVAL_SS_RESTART_NGINX=\"$INTERVAL_SS_RESTART_NGINX\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESTART_PHP" ]]; then ss_sed "s|\(^INTERVAL_SS_RESTART_PHP=\).*|INTERVAL_SS_RESTART_PHP=\"$INTERVAL_SS_RESTART_PHP\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESTART_REDIS" ]]; then ss_sed "s|\(^INTERVAL_SS_RESTART_REDIS=\).*|INTERVAL_SS_RESTART_REDIS=\"$INTERVAL_SS_RESTART_REDIS\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_RESTART_UFW" ]]; then ss_sed "s|\(^INTERVAL_SS_RESTART_UFW=\).*|INTERVAL_SS_RESTART_UFW=\"$INTERVAL_SS_RESTART_UFW\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_SYNC_STAGING" ]]; then ss_sed "s|\(^INTERVAL_SS_SYNC_STAGING=\).*|INTERVAL_SS_SYNC_STAGING=\"$INTERVAL_SS_SYNC_STAGING\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_UPDATE_CONFIG" ]]; then ss_sed "s|\(^INTERVAL_SS_UPDATE_CONFIG=\).*|INTERVAL_SS_UPDATE_CONFIG=\"$INTERVAL_SS_UPDATE_CONFIG\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$INTERVAL_SS_UPDATE_MODULES" ]]; then ss_sed "s|\(^INTERVAL_SS_UPDATE_MODULES=\).*|INTERVAL_SS_UPDATE_MODULES=\"$INTERVAL_SS_UPDATE_MODULES\"|g" "${TMP_SS_CONFIG}" fi if [[ -n "$SS_INTERVAL_WORKER" ]]; then ss_sed "s|\(^SS_INTERVAL_WORKER=\).*|SS_INTERVAL_WORKER=\"$SS_INTERVAL_WORKER\"|g" "${TMP_SS_CONFIG}" fi ## mu plugins ## if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_01_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_01_SOURCE=\).*|MU_PLUGIN_01_SOURCE=\"$MU_PLUGIN_01_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_01_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_01_DIR=\).*|MU_PLUGIN_01_DIR=\"$MU_PLUGIN_01_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_02_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_02_SOURCE=\).*|MU_PLUGIN_02_SOURCE=\"$MU_PLUGIN_02_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_02_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_02_DIR=\).*|MU_PLUGIN_02_DIR=\"$MU_PLUGIN_02_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_03_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_03_SOURCE=\).*|MU_PLUGIN_03_SOURCE=\"$MU_PLUGIN_03_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_03_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_03_DIR=\).*|MU_PLUGIN_03_DIR=\"$MU_PLUGIN_03_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_04_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_04_SOURCE=\).*|MU_PLUGIN_04_SOURCE=\"$MU_PLUGIN_04_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_04_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_04_DIR=\).*|MU_PLUGIN_04_DIR=\"$MU_PLUGIN_04_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_05_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_05_SOURCE=\).*|MU_PLUGIN_05_SOURCE=\"$MU_PLUGIN_05_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_05_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_05_DIR=\).*|MU_PLUGIN_05_DIR=\"$MU_PLUGIN_05_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_06_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_06_SOURCE=\).*|MU_PLUGIN_06_SOURCE=\"$MU_PLUGIN_06_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_06_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_06_DIR=\).*|MU_PLUGIN_06_DIR=\"$MU_PLUGIN_06_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_07_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_07_SOURCE=\).*|MU_PLUGIN_07_SOURCE=\"$MU_PLUGIN_07_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_07_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_07_DIR=\).*|MU_PLUGIN_07_DIR=\"$MU_PLUGIN_07_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_08_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_08_SOURCE=\).*|MU_PLUGIN_08_SOURCE=\"$MU_PLUGIN_08_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_08_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_08_DIR=\).*|MU_PLUGIN_08_DIR=\"$MU_PLUGIN_08_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_09_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_09_SOURCE=\).*|MU_PLUGIN_09_SOURCE=\"$MU_PLUGIN_09_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_09_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_09_DIR=\).*|MU_PLUGIN_09_DIR=\"$MU_PLUGIN_09_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_10_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_10_SOURCE=\).*|MU_PLUGIN_10_SOURCE=\"$MU_PLUGIN_10_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_10_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_10_DIR=\).*|MU_PLUGIN_10_DIR=\"$MU_PLUGIN_10_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_11_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_11_SOURCE=\).*|MU_PLUGIN_11_SOURCE=\"$MU_PLUGIN_11_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_11_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_11_DIR=\).*|MU_PLUGIN_11_DIR=\"$MU_PLUGIN_11_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_12_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_12_SOURCE=\).*|MU_PLUGIN_12_SOURCE=\"$MU_PLUGIN_12_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_12_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_12_DIR=\).*|MU_PLUGIN_12_DIR=\"$MU_PLUGIN_12_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_13_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_13_SOURCE=\).*|MU_PLUGIN_13_SOURCE=\"$MU_PLUGIN_13_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_13_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_13_DIR=\).*|MU_PLUGIN_13_DIR=\"$MU_PLUGIN_13_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_14_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_14_SOURCE=\).*|MU_PLUGIN_14_SOURCE=\"$MU_PLUGIN_14_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_14_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_14_DIR=\).*|MU_PLUGIN_14_DIR=\"$MU_PLUGIN_14_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_15_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_15_SOURCE=\).*|MU_PLUGIN_15_SOURCE=\"$MU_PLUGIN_15_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_15_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_15_DIR=\).*|MU_PLUGIN_15_DIR=\"$MU_PLUGIN_15_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_16_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_16_SOURCE=\).*|MU_PLUGIN_16_SOURCE=\"$MU_PLUGIN_16_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_16_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_16_DIR=\).*|MU_PLUGIN_16_DIR=\"$MU_PLUGIN_16_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_17_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_17_SOURCE=\).*|MU_PLUGIN_17_SOURCE=\"$MU_PLUGIN_17_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_17_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_17_DIR=\).*|MU_PLUGIN_17_DIR=\"$MU_PLUGIN_17_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_18_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_18_SOURCE=\).*|MU_PLUGIN_18_SOURCE=\"$MU_PLUGIN_18_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_18_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_18_DIR=\).*|MU_PLUGIN_18_DIR=\"$MU_PLUGIN_18_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_19_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_19_SOURCE=\).*|MU_PLUGIN_19_SOURCE=\"$MU_PLUGIN_19_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_19_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_19_DIR=\).*|MU_PLUGIN_19_DIR=\"$MU_PLUGIN_19_DIR\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_20_SOURCE" ]]; then ss_sed "s|\(^MU_PLUGIN_20_SOURCE=\).*|MU_PLUGIN_20_SOURCE=\"$MU_PLUGIN_20_SOURCE\"|g" "${TMP_SS_CONFIG}" fi if [[ "$SS_WORDPRESS_MU_PLUGINS" == "custom" || "$SS_MU_PLUGINS" == "custom" ]] && [[ -n "$MU_PLUGIN_20_DIR" ]]; then ss_sed "s|\(^MU_PLUGIN_20_DIR=\).*|MU_PLUGIN_20_DIR=\"$MU_PLUGIN_20_DIR\"|g" "${TMP_SS_CONFIG}" fi #################################################################################################### #### J. SS-Update-Config: Validate Latest SS-Config Boilerplate #################################### #################################################################################################### ## this snippet will ensure that the latest ss-config boilerplate appears intact ## ## then it will proceed to overwrite the current ss-config with the new one ## ## validate/install ss-config boilerplate ## VALIDATE_TMP_SS_CONFIG=$(grep "${SS_EOF}" "${TMP_SS_CONFIG}") DB_NAME_NOW=$(source "${TMP_SS_CONFIG}"; echo "${DB_NAME}") if [[ -n "${VALIDATE_TMP_SS_CONFIG}" ]] && [[ -n "${DB_NAME_NOW}" ]]; then ss_mv "${TMP_SS_CONFIG}" "${PATH_SS_CONFIG}" ss_chown root:root "${PATH_SS_CONFIG}" ## must be root:root chmod 0700 "${PATH_SS_CONFIG}" ## must be 0700 else ss_echo "${COLOR_ERROR}ss-update-config: The boilerplate appears corrupt so update was skipped... ${COLOR_RESET}" fi #################################################################################################### #### K. SS-Update-Config: Replace SS-Config Placeholders (If Exist) ################################ #################################################################################################### ## here we manually replace any remaining placeholders in ss-config to avoid conflicts ## ## this ensures a default value exists in case none has ever been specified ## ## replace placeholders ## ss_sed "s|@SSH_PORT|22|g" /var/www/ss-config ## deprecated ss_sed "s|@SSH_KEYS|false|g" /var/www/ss-config ss_sed "s|@SSH_RESTRICT_IP|false|g" /var/www/ss-config ss_sed "s|@SSH_IPV4|192.0.2.1|g" /var/www/ss-config ss_sed "s|@SITE_NOINDEX|false|g" /var/www/ss-config ss_sed "s|@DB_HOST|127.0.0.1|g" /var/www/ss-config ss_sed "s|@DB_PORT|3306|g" /var/www/ss-config ss_sed "s|@DB_PREFIX|wp_|g" /var/www/ss-config ss_sed "s|@DEV_SITE_STATUS|false|g" /var/www/ss-config ss_sed "s|@DEV_SITE_PROTECT|false|g" /var/www/ss-config ss_sed "s|@STAGING_SITE_STATUS|false|g" /var/www/ss-config ss_sed "s|@STAGING_SITE_PROTECT|false|g" /var/www/ss-config ss_sed "s|@GUEST_USER|guest|g" /var/www/ss-config ss_sed "s|@GUEST_PASSWORD|$(openssl rand -hex 12)|g" /var/www/ss-config ss_sed "s|@SS_APP|wordpress|g" /var/www/ss-config ss_sed "s|@SS_LANGUAGE|en_US|g" /var/www/ss-config ss_sed "s|@SS_PILOT_FILE||g" /var/www/ss-config ss_sed "s|@SS_DATABASE_REMOTE|false|g" /var/www/ss-config ss_sed "s|@SS_REMOTE_BACKUPS|none|g" /var/www/ss-config ss_sed "s|@SS_ADMINER_PUBLIC|true|g" /var/www/ss-config ss_sed "s|@SS_WORDPRESS_ADMIN_DASHBOARD|true|g" /var/www/ss-config ss_sed "s|@SS_WORDPRESS_PLUGIN_BLACKLIST|true|g" /var/www/ss-config ss_sed "s|@SSL_TYPE|openssl|g" /var/www/ss-config ss_sed "s|@WP_MULTISITE_STATUS|false|g" /var/www/ss-config ss_sed "s|@WP_MULTISITE_SUBDOMAINS|true|g" /var/www/ss-config ss_sed "s|@WP_DEFAULT_THEME|twentytwenty|g" /var/www/ss-config ## replace missing values ## ss_sed 's|DB_PORT=""|DB_PORT="3306"|g' /var/www/ss-config #################################################################################################### #### SlickStack: Reset Permissions (SlickStack Scripts) ############################################ #################################################################################################### ## we include this permissions reset in all cron jobs and bash scripts for redundancy ## ## chmod 0700 means only the root/sudo users can execute any SlickStack scripts ## ## THIS SNIPPET DOES NOT RELY ON SS-CONFIG OR SS-FUNCTIONS ## SNIPPET: ss bash scripts, ss cron jobs ## UPDATED: 02JUL2022 chown root:root /var/www/ss* ## must be root:root chown root:root /var/www/crons/*cron* ## must be root:root chown root:root /var/www/crons/custom/*cron* ## must be root:root chmod 0700 /var/www/ss* ## 0700 means only root/sudo can execute chmod 0700 /var/www/crons/*cron* ## 0700 means only root/sudo can execute chmod 0700 /var/www/crons/custom/*cron* ## 0700 means only root/sudo can execute #################################################################################################### #### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ############### #################################################################################################### ## Ref: https://linux.die.net/man/8/apt-get ## Ref: https://askubuntu.com/questions/1112555/is-apt-dist-upgrade-not-necessary-anymore ## Ref: https://unix.stackexchange.com/questions/467552/reboot-over-ssh/467996#467996 ## Ref: https://askubuntu.com/questions/254129/how-to-display-all-apt-get-dpkgoptions-and-their-current-values ## Ref: https://serverfault.com/questions/48724/100-non-interactive-debian-dist-upgrade ## Ref: https://askubuntu.com/questions/938359/apt-get-install-remove-update-upgrade-via-cron-job ## Ref: http://manpages.ubuntu.com/manpages/trusty/man8/apt.8.html ## Ref: https://www.debian.org/doc/manuals/apt-guide/index.en.html ## Ref: https://serverfault.com/questions/478461/how-to-install-packages-with-apt-without-user-interaction ## Ref: https://serverfault.com/questions/644180/what-does-qq-argument-for-apt-get-mean ## Ref: https://superuser.com/questions/1438031/ubuntu-18-command-apt-get-dist-upgrade-qq-force-yes-deprecated ## Ref: https://superuser.com/questions/1412054/non-interactive-apt-upgrade ## Ref: https://serverfault.com/questions/227190/how-do-i-ask-apt-get-to-skip-any-interactive-post-install-configuration-steps ## Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1253351 ## Ref: https://kb.cloudberrylab.com/backup-mac-linux/silent-install-macos-and-linux-builds ## Ref: https://unix.stackexchange.com/questions/32533/debian-how-to-delay-configuration-when-installing-upgrading ## Ref: https://raymii.org/s/tutorials/Silent-automatic-apt-get-upgrade.html ## Ref: https://unix.stackexchange.com/questions/138504/setting-path-vs-exporting-path-in-bash-profile ## Ref: https://askubuntu.com/questions/578568/path-error-in-ubuntu ## Ref: https://stackoverflow.com/questions/38977713/what-is-snap-bin-directory-in-path-can-i-remove-it-from-path ## Ref: https://askubuntu.com/questions/1121495/add-snap-bin-to-path-used-by-systemd ## Ref: https://askubuntu.com/questions/163200/e-dpkg-was-interrupted-run-sudo-dpkg-configure-a ## Ref: https://stackoverflow.com/questions/1305237/how-to-list-variables-declared-in-script-in-bash ## Ref: https://stackoverflow.com/questions/32739572/bash-search-and-replace-value-of-a-variable-inside-a-file ## Ref: https://askubuntu.com/questions/76808/how-do-i-use-variables-in-a-sed-command ## Ref: https://unix.stackexchange.com/questions/69112/how-can-i-use-variables-in-the-lhs-and-rhs-of-a-sed-substitution ## Ref: https://stackoverflow.com/questions/19151954/how-to-use-variables-in-a-command-in-sed ## Ref: https://unix.stackexchange.com/questions/47584/in-a-bash-script-using-the-conditional-or-in-an-if-statement ## Ref: https://stackoverflow.com/questions/11287861/how-to-check-if-a-file-contains-a-specific-string-using-bash ## Ref: https://stackoverflow.com/questions/25564051/how-to-compare-grep-result-with-a-variable ## Ref: https://stackoverflow.com/questions/26458121/grep-a-specific-string-from-bash-script-and-compare ## Ref: https://unix.stackexchange.com/questions/372733/get-output-and-return-value-of-grep-in-single-operation-in-bash ## Ref: https://stackoverflow.com/questions/18789907/read-values-from-configuration-file-and-use-in-shell-script ## Ref: https://stackoverflow.com/questions/38385963/sed-replacing-string-with-quotation-marks ## Ref: https://github.com/littlebizzy/slickstack/issues/36 ## Ref: http://manpages.ubuntu.com/manpages/bionic/man1/date.1.html ## Ref: https://crunchify.com/shell-script-append-timestamp-to-file-name/ ## Ref: https://stackoverflow.com/questions/6946677/grep-with-quotation-mark ## Ref: https://unix.stackexchange.com/questions/48535/can-grep-return-true-false-or-are-there-alternative-methods ## SS_EOF