Revert "scripts: Various shell script cleanups (#4008)"
This reverts commit fba4fd5314
.
The series of commits I made for PR #4008 were squashed into a single
commit and rebased. Somewhere along the way a mistake was made in a
merge conflict resolution, resulting in some bad code in
`bin/buildForWindows.sh`. This commit reverts the bad squashed commit.
pull/4072/head
parent
02af7d0c2d
commit
9ffb2ccfb0
|
@ -1,23 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
pecho() { printf %s\\n "$*"; }
|
||||
log() { pecho "$@"; }
|
||||
error() { log "ERROR: $@" >&2; }
|
||||
fatal() { error "$@"; exit 1; }
|
||||
is_cmd() { command -v "$@" >/dev/null 2>&1; }
|
||||
|
||||
# Move to the folder where ep-lite is installed
|
||||
cd "$(dirname "$0")"/..
|
||||
|
||||
# Is wget installed?
|
||||
is_cmd wget || fatal "Please install wget"
|
||||
|
||||
# Is zip installed?
|
||||
is_cmd zip || fatal "Please install zip"
|
||||
|
||||
# Is zip installed?
|
||||
is_cmd unzip || fatal "Please install unzip"
|
||||
=======
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd $(dirname $0)
|
||||
|
||||
|
@ -47,9 +29,9 @@ hash unzip > /dev/null 2>&1 || {
|
|||
START_FOLDER=$(pwd);
|
||||
TMP_FOLDER=$(mktemp -d)
|
||||
|
||||
log "create a clean environment in $TMP_FOLDER..."
|
||||
cp -ar . "$TMP_FOLDER"
|
||||
cd "$TMP_FOLDER"
|
||||
echo "create a clean environment in $TMP_FOLDER..."
|
||||
cp -ar . $TMP_FOLDER
|
||||
cd $TMP_FOLDER
|
||||
rm -rf node_modules
|
||||
rm -f etherpad-lite-win.zip
|
||||
|
||||
|
@ -57,33 +39,33 @@ rm -f etherpad-lite-win.zip
|
|||
# making the windows package smaller
|
||||
export NODE_ENV=production
|
||||
|
||||
log "do a normal unix install first..."
|
||||
echo "do a normal unix install first..."
|
||||
bin/installDeps.sh || exit 1
|
||||
|
||||
log "copy the windows settings template..."
|
||||
echo "copy the windows settings template..."
|
||||
cp settings.json.template settings.json
|
||||
|
||||
log "resolve symbolic links..."
|
||||
echo "resolve symbolic links..."
|
||||
cp -rL node_modules node_modules_resolved
|
||||
rm -rf node_modules
|
||||
mv node_modules_resolved node_modules
|
||||
|
||||
log "download windows node..."
|
||||
echo "download windows node..."
|
||||
cd bin
|
||||
wget "https://nodejs.org/dist/latest-erbium/win-x86/node.exe" -O ../node.exe
|
||||
|
||||
log "remove git history to reduce folder size"
|
||||
echo "remove git history to reduce folder size"
|
||||
rm -rf .git/objects
|
||||
|
||||
log "remove windows jsdom-nocontextify/test folder"
|
||||
rm -rf "$TMP_FOLDER"/src/node_modules/wd/node_modules/request/node_modules/form-data/node_modules/combined-stream/test
|
||||
rm -rf "$TMP_FOLDER"/src/node_modules/nodemailer/node_modules/mailcomposer/node_modules/mimelib/node_modules/encoding/node_modules/iconv-lite/encodings/tables
|
||||
echo "remove windows jsdom-nocontextify/test folder"
|
||||
rm -rf $TMP_FOLDER/src/node_modules/wd/node_modules/request/node_modules/form-data/node_modules/combined-stream/test
|
||||
rm -rf $TMP_FOLDER/src/node_modules/nodemailer/node_modules/mailcomposer/node_modules/mimelib/node_modules/encoding/node_modules/iconv-lite/encodings/tables
|
||||
|
||||
log "create the zip..."
|
||||
cd "$TMP_FOLDER"
|
||||
zip -9 -r "$START_FOLDER"/etherpad-lite-win.zip ./*
|
||||
echo "create the zip..."
|
||||
cd $TMP_FOLDER
|
||||
zip -9 -r $START_FOLDER/etherpad-lite-win.zip ./*
|
||||
|
||||
log "clean up..."
|
||||
rm -rf "$TMP_FOLDER"
|
||||
echo "clean up..."
|
||||
rm -rf $TMP_FOLDER
|
||||
|
||||
log "Finished. You can find the zip in the Etherpad root folder, it's called etherpad-lite-win.zip"
|
||||
echo "Finished. You can find the zip in the Etherpad root folder, it's called etherpad-lite-win.zip"
|
||||
|
|
|
@ -1,15 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Move to the folder where ep-lite is installed
|
||||
cd "$(dirname "$0")"/..
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd $(dirname $0)
|
||||
|
||||
# Prepare the environment
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#Prepare the environment
|
||||
bin/installDeps.sh || exit 1
|
||||
|
||||
echo "If you are new to debugging Node.js with Chrome DevTools, take a look at this page:"
|
||||
echo "https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27"
|
||||
echo "Open 'chrome://inspect' on Chrome to start debugging."
|
||||
|
||||
# Use 0.0.0.0 to allow external connections to the debugger
|
||||
# (ex: running Etherpad on a docker container). Use default port # (9229)
|
||||
#Use 0.0.0.0 to allow external connections to the debugger
|
||||
#(ex: running Etherpad on a docker container). Use default port # (9229)
|
||||
node --inspect=0.0.0.0:9229 node_modules/ep_etherpad-lite/node/server.js "$@"
|
||||
|
|
|
@ -8,12 +8,6 @@ REQUIRED_NODE_MINOR=13
|
|||
REQUIRED_NPM_MAJOR=5
|
||||
REQUIRED_NPM_MINOR=5
|
||||
|
||||
pecho() { printf %s\\n "$*"; }
|
||||
log() { pecho "$@"; }
|
||||
error() { log "ERROR: $@" >&2; }
|
||||
fatal() { error "$@"; exit 1; }
|
||||
is_cmd() { command -v "$@" >/dev/null 2>&1; }
|
||||
|
||||
require_minimal_version() {
|
||||
PROGRAM_LABEL="$1"
|
||||
VERSION_STRING="$2"
|
||||
|
@ -22,50 +16,71 @@ require_minimal_version() {
|
|||
|
||||
# Flag -s (--only-delimited on GNU cut) ensures no string is returned
|
||||
# when there is no match
|
||||
DETECTED_MAJOR=$(pecho "$VERSION_STRING" | cut -s -d "." -f 1)
|
||||
DETECTED_MINOR=$(pecho "$VERSION_STRING" | cut -s -d "." -f 2)
|
||||
DETECTED_MAJOR=$(echo $VERSION_STRING | cut -s -d "." -f 1)
|
||||
DETECTED_MINOR=$(echo $VERSION_STRING | cut -s -d "." -f 2)
|
||||
|
||||
[ -n "$DETECTED_MAJOR" ] || fatal "Cannot extract $PROGRAM_LABEL major version from version string \"$VERSION_STRING\""
|
||||
if [ -z "$DETECTED_MAJOR" ]; then
|
||||
printf 'Cannot extract %s major version from version string "%s"\n' "$PROGRAM_LABEL" "$VERSION_STRING" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -n "$DETECTED_MINOR" ] || fatal "Cannot extract $PROGRAM_LABEL minor version from version string \"$VERSION_STRING\""
|
||||
if [ -z "$DETECTED_MINOR" ]; then
|
||||
printf 'Cannot extract %s minor version from version string "%s"\n' "$PROGRAM_LABEL" "$VERSION_STRING" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$DETECTED_MAJOR" in
|
||||
''|*[!0-9]*)
|
||||
fatal "$PROGRAM_LABEL major version from \"$VERSION_STRING\" is not a number. Detected: \"$DETECTED_MAJOR\""
|
||||
printf '%s major version from "%s" is not a number. Detected: "%s"\n' "$PROGRAM_LABEL" "$VERSION_STRING" "$DETECTED_MAJOR" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$DETECTED_MINOR" in
|
||||
''|*[!0-9]*)
|
||||
fatal "$PROGRAM_LABEL minor version from \"$VERSION_STRING\" is not a number. Detected: \"$DETECTED_MINOR\""
|
||||
printf '%s minor version from "%s" is not a number. Detected: "%s"\n' "$PROGRAM_LABEL" "$VERSION_STRING" "$DETECTED_MINOR" >&2
|
||||
exit 1
|
||||
esac
|
||||
|
||||
[ "$DETECTED_MAJOR" -gt "$REQUIRED_MAJOR" ] || ([ "$DETECTED_MAJOR" -eq "$REQUIRED_MAJOR" ] && [ "$DETECTED_MINOR" -ge "$REQUIRED_MINOR" ]) \
|
||||
|| fatal "Your $PROGRAM_LABEL version \"$VERSION_STRING\" is too old. $PROGRAM_LABEL $REQUIRED_MAJOR.$REQUIRED_MINOR.x or higher is required."
|
||||
if [ "$DETECTED_MAJOR" -lt "$REQUIRED_MAJOR" ] || ([ "$DETECTED_MAJOR" -eq "$REQUIRED_MAJOR" ] && [ "$DETECTED_MINOR" -lt "$REQUIRED_MINOR" ]); then
|
||||
printf 'Your %s version "%s" is too old. %s %d.%d.x or higher is required.\n' "$PROGRAM_LABEL" "$VERSION_STRING" "$PROGRAM_LABEL" "$REQUIRED_MAJOR" "$REQUIRED_MINOR" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Move to the folder where ep-lite is installed
|
||||
cd "$(dirname "$0")"/..
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd $(dirname $0)
|
||||
|
||||
# Is node installed?
|
||||
# Not checking io.js, default installation creates a symbolic link to node
|
||||
is_cmd node || fatal "Please install node.js ( https://nodejs.org )"
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
# Is npm installed?
|
||||
is_cmd npm || fatal "Please install npm ( https://npmjs.org )"
|
||||
#Is node installed?
|
||||
#Not checking io.js, default installation creates a symbolic link to node
|
||||
hash node > /dev/null 2>&1 || {
|
||||
echo "Please install node.js ( https://nodejs.org )" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check npm version
|
||||
#Is npm installed?
|
||||
hash npm > /dev/null 2>&1 || {
|
||||
echo "Please install npm ( https://npmjs.org )" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
#Check npm version
|
||||
NPM_VERSION_STRING=$(npm --version)
|
||||
|
||||
require_minimal_version "npm" "$NPM_VERSION_STRING" "$REQUIRED_NPM_MAJOR" "$REQUIRED_NPM_MINOR"
|
||||
|
||||
# Check node version
|
||||
#Check node version
|
||||
NODE_VERSION_STRING=$(node --version)
|
||||
NODE_VERSION_STRING=${NODE_VERSION_STRING#"v"}
|
||||
|
||||
require_minimal_version "nodejs" "$NODE_VERSION_STRING" "$REQUIRED_NODE_MAJOR" "$REQUIRED_NODE_MINOR"
|
||||
|
||||
# Get the name of the settings file
|
||||
#Get the name of the settings file
|
||||
settings="settings.json"
|
||||
a='';
|
||||
for arg in "$@"; do
|
||||
|
@ -73,13 +88,13 @@ for arg in "$@"; do
|
|||
a=$arg
|
||||
done
|
||||
|
||||
# Does a $settings exist? if not copy the template
|
||||
if [ ! -f "$settings" ]; then
|
||||
log "Copy the settings template to $settings..."
|
||||
cp settings.json.template "$settings" || exit 1
|
||||
#Does a $settings exist? if not copy the template
|
||||
if [ ! -f $settings ]; then
|
||||
echo "Copy the settings template to $settings..."
|
||||
cp settings.json.template $settings || exit 1
|
||||
fi
|
||||
|
||||
log "Ensure that all dependencies are up to date... If this is the first time you have run Etherpad please be patient."
|
||||
echo "Ensure that all dependencies are up to date... If this is the first time you have run Etherpad please be patient."
|
||||
(
|
||||
mkdir -p node_modules
|
||||
cd node_modules
|
||||
|
@ -91,8 +106,8 @@ log "Ensure that all dependencies are up to date... If this is the first time y
|
|||
exit 1
|
||||
}
|
||||
|
||||
# Remove all minified data to force node creating it new
|
||||
log "Clearing minified cache..."
|
||||
#Remove all minified data to force node creating it new
|
||||
echo "Clearing minified cache..."
|
||||
rm -f var/minified*
|
||||
|
||||
exit 0
|
||||
|
|
40
bin/run.sh
40
bin/run.sh
|
@ -1,37 +1,39 @@
|
|||
#!/bin/sh
|
||||
|
||||
pecho() { printf %s\\n "$*"; }
|
||||
log() { pecho "$@"; }
|
||||
error() { log "ERROR: $@" >&2; }
|
||||
fatal() { error "$@"; exit 1; }
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd $(dirname $0)
|
||||
|
||||
# Move to the folder where ep-lite is installed
|
||||
cd "$(dirname "$0")"/..
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
ignoreRoot=0
|
||||
for ARG in "$@"; do
|
||||
for ARG in "$@"
|
||||
do
|
||||
if [ "$ARG" = "--root" ]; then
|
||||
ignoreRoot=1
|
||||
fi
|
||||
done
|
||||
|
||||
# Stop the script if it's started as root
|
||||
if [ "$(id -u)" -eq 0 ] && [ "$ignoreRoot" -eq 0 ]; then
|
||||
cat <<EOF >&2
|
||||
You shouldn't start Etherpad as root!
|
||||
Please type 'Etherpad rocks my socks' (or restart with the '--root'
|
||||
argument) if you still want to start it as root:
|
||||
EOF
|
||||
printf "> " >&2
|
||||
#Stop the script if it's started as root
|
||||
if [ "$(id -u)" -eq 0 ] && [ $ignoreRoot -eq 0 ]; then
|
||||
echo "You shouldn't start Etherpad as root!"
|
||||
echo "Please type 'Etherpad rocks my socks' or supply the '--root' argument if you still want to start it as root"
|
||||
read rocks
|
||||
[ "$rocks" = "Etherpad rocks my socks" ] || fatal "Your input was incorrect"
|
||||
if [ ! "$rocks" == "Etherpad rocks my socks" ]
|
||||
then
|
||||
echo "Your input was incorrect"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Prepare the environment
|
||||
#Prepare the environment
|
||||
bin/installDeps.sh "$@" || exit 1
|
||||
|
||||
# Move to the node folder and start
|
||||
log "Starting Etherpad..."
|
||||
#Move to the node folder and start
|
||||
echo "Started Etherpad..."
|
||||
|
||||
SCRIPTPATH=$(pwd -P)
|
||||
exec node "$SCRIPTPATH/node_modules/ep_etherpad-lite/node/server.js" "$@"
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This script ensures that ep-lite is automatically restarting after
|
||||
# an error happens
|
||||
#This script ensures that ep-lite is automatically restarting after an error happens
|
||||
|
||||
# Handling Errors
|
||||
# 0 silent
|
||||
# 1 email
|
||||
#Handling Errors
|
||||
# 0 silent
|
||||
# 1 email
|
||||
ERROR_HANDLING=0
|
||||
# Your email address which should receive the error messages
|
||||
EMAIL_ADDRESS="no-reply@example.com"
|
||||
|
@ -16,54 +15,54 @@ TIME_BETWEEN_EMAILS=600 # 10 minutes
|
|||
|
||||
# DON'T EDIT AFTER THIS LINE
|
||||
|
||||
pecho() { printf %s\\n "$*"; }
|
||||
log() { pecho "$@"; }
|
||||
error() { log "ERROR: $@" >&2; }
|
||||
fatal() { error "$@"; exit 1; }
|
||||
|
||||
LAST_EMAIL_SEND=0
|
||||
|
||||
# Move to the folder where ep-lite is installed
|
||||
cd "$(dirname "$0")"/..
|
||||
|
||||
# Check if a logfile parameter is set
|
||||
LOG="$1"
|
||||
[ -n "${LOG}" ] || fatal "Set a logfile as the first parameter"
|
||||
|
||||
#Move to the folder where ep-lite is installed
|
||||
cd $(dirname $0)
|
||||
|
||||
#Was this script started in the bin folder? if yes move out
|
||||
if [ -d "../bin" ]; then
|
||||
cd "../"
|
||||
fi
|
||||
|
||||
#Check if a logfile parameter is set
|
||||
if [ -z "${LOG}" ]; then
|
||||
echo "Set a logfile as the first parameter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
shift
|
||||
while [ 1 ]
|
||||
do
|
||||
#Try to touch the file if it doesn't exist
|
||||
if [ ! -f ${LOG} ]; then
|
||||
touch ${LOG} || ( echo "Logfile '${LOG}' is not writeable" && exit 1 )
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Try to touch the file if it doesn't exist
|
||||
[ -f "${LOG}" ] || touch "${LOG}" || fatal "Logfile '${LOG}' is not writeable"
|
||||
#Check if the file is writeable
|
||||
if [ ! -w ${LOG} ]; then
|
||||
echo "Logfile '${LOG}' is not writeable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if the file is writeable
|
||||
[ -w "${LOG}" ] || fatal "Logfile '${LOG}' is not writeable"
|
||||
#Start the application
|
||||
bin/run.sh $@ >>${LOG} 2>>${LOG}
|
||||
|
||||
# Start the application
|
||||
bin/run.sh "$@" >>${LOG} 2>>${LOG}
|
||||
|
||||
TIME_FMT=$(date +%Y-%m-%dT%H:%M:%S%z)
|
||||
|
||||
# Send email
|
||||
if [ "$ERROR_HANDLING" = 1 ]; then
|
||||
#Send email
|
||||
if [ $ERROR_HANDLING = 1 ]; then
|
||||
TIME_NOW=$(date +%s)
|
||||
TIME_SINCE_LAST_SEND=$(($TIME_NOW - $LAST_EMAIL_SEND))
|
||||
|
||||
if [ "$TIME_SINCE_LAST_SEND" -gt "$TIME_BETWEEN_EMAILS" ]; then
|
||||
{
|
||||
cat <<EOF
|
||||
Server was restarted at: ${TIME_FMT}
|
||||
The last 50 lines of the log before the server exited:
|
||||
|
||||
EOF
|
||||
tail -n 50 "${LOG}"
|
||||
} | mail -s "Etherpad restarted" "$EMAIL_ADDRESS"
|
||||
if [ $TIME_SINCE_LAST_SEND -gt $TIME_BETWEEN_EMAILS ]; then
|
||||
printf "Server was restarted at: $(date)\nThe last 50 lines of the log before the error happens:\n $(tail -n 50 ${LOG})" | mail -s "Pad Server was restarted" $EMAIL_ADDRESS
|
||||
|
||||
LAST_EMAIL_SEND=$TIME_NOW
|
||||
fi
|
||||
fi
|
||||
|
||||
pecho "RESTART! ${TIME_FMT}" >>${LOG}
|
||||
echo "RESTART!" >>${LOG}
|
||||
|
||||
# Sleep 10 seconds before restart
|
||||
#Sleep 10 seconds before restart
|
||||
sleep 10
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue