|
@@ -10,6 +10,7 @@ lgsm_version="050216"
|
|
|
# fn_dl "dl_filename" "dl_filepath" "dl_url" "dl_md5"
|
|
# fn_dl "dl_filename" "dl_filepath" "dl_url" "dl_md5"
|
|
|
# fn_dl "file.tar.bz2" "/home/gameserver" "http://example.com/file.tar/bz2" "10cd7353aa9d758a075c600a6dd193fd"
|
|
# fn_dl "file.tar.bz2" "/home/gameserver" "http://example.com/file.tar/bz2" "10cd7353aa9d758a075c600a6dd193fd"
|
|
|
|
|
|
|
|
|
|
+
|
|
|
fn_dl_md5(){
|
|
fn_dl_md5(){
|
|
|
# Runs MD5 Check if available
|
|
# Runs MD5 Check if available
|
|
|
if [ -n "${md5}" ]; then
|
|
if [ -n "${md5}" ]; then
|
|
@@ -32,43 +33,19 @@ if [ -n "${md5}" ]; then
|
|
|
fi
|
|
fi
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-fn_dl_file(){
|
|
|
|
|
-# defines variables from other script file
|
|
|
|
|
-dl_filename=$1
|
|
|
|
|
-dl_filepath=$2
|
|
|
|
|
-dl_url=$3
|
|
|
|
|
-dl_md5=$4
|
|
|
|
|
-
|
|
|
|
|
-if [ ! -f "${dl_filepath}/${dl_filename}" ]||[ -n "${retry_dl}" ]; then
|
|
|
|
|
- echo -ne "downloading ${dl_filename}..."
|
|
|
|
|
- dl=$(curl --progress-bar --fail -o "${dl_filepath}/${dl_filename}" "${dl_url}")
|
|
|
|
|
- exitcode=$?
|
|
|
|
|
- echo -ne "downloading ${dl_filename}...\c"
|
|
|
|
|
- if [ ${exitcode} -ne 0 ]; then
|
|
|
|
|
- fn_printfaileol
|
|
|
|
|
- echo -e "${dl_url}\n"
|
|
|
|
|
- exit ${exitcode}
|
|
|
|
|
- else
|
|
|
|
|
- fn_printokeol
|
|
|
|
|
- fi
|
|
|
|
|
-else
|
|
|
|
|
- echo -e "${dl_filename} already exists...\c"
|
|
|
|
|
- fn_dl_md5
|
|
|
|
|
- while true; do
|
|
|
|
|
- read -e -i "n" -p "Download again? [y/N]" yn
|
|
|
|
|
- case $yn in
|
|
|
|
|
- [Yy]* ) fn_dl; retry_dl=1;;
|
|
|
|
|
- [Nn]* ) break;;
|
|
|
|
|
- * ) echo "Please answer yes or no.";;
|
|
|
|
|
- esac
|
|
|
|
|
- done
|
|
|
|
|
-fi
|
|
|
|
|
-
|
|
|
|
|
-fn_dl_md5
|
|
|
|
|
|
|
+fn_dl_extract(){
|
|
|
|
|
+# extracts archives
|
|
|
|
|
+:
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+# trap to remove file download if canceled before completed
|
|
|
|
|
+fn_fetch_trap() {
|
|
|
|
|
+ echo ""
|
|
|
|
|
+ fn_printinfomationnl "Cancelling download"
|
|
|
|
|
+ sleep 1
|
|
|
|
|
+ fn_printinfomation "Removing ${filename}"
|
|
|
|
|
+ rm -f "${filedir}/${filename}"
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
# Downloads file using curl and run it if required
|
|
# Downloads file using curl and run it if required
|
|
|
# fn_fetch_file "fileurl" "filedir" "filename" "run" "force" "md5"
|
|
# fn_fetch_file "fileurl" "filedir" "filename" "run" "force" "md5"
|
|
@@ -79,12 +56,13 @@ filename=${3}
|
|
|
run=${4:-0}
|
|
run=${4:-0}
|
|
|
force=${5:-0}
|
|
force=${5:-0}
|
|
|
md5=${6}
|
|
md5=${6}
|
|
|
|
|
+
|
|
|
# If the file is missing, then download
|
|
# If the file is missing, then download
|
|
|
if [ ! -f "${filedir}/${filename}" ]; then
|
|
if [ ! -f "${filedir}/${filename}" ]; then
|
|
|
if [ ! -d "${filedir}" ]; then
|
|
if [ ! -d "${filedir}" ]; then
|
|
|
mkdir -p "${filedir}"
|
|
mkdir -p "${filedir}"
|
|
|
fi
|
|
fi
|
|
|
- echo -e " fetching ${filename}...\c"
|
|
|
|
|
|
|
+ echo -ne " fetching ${filename}...\c"
|
|
|
# Check curl exists and use available path
|
|
# Check curl exists and use available path
|
|
|
curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl $(echo $PATH | sed "s/\([:]\|\$\)/\/curl /g")"
|
|
curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl $(echo $PATH | sed "s/\([:]\|\$\)/\/curl /g")"
|
|
|
for curlcmd in ${curlpaths}
|
|
for curlcmd in ${curlpaths}
|
|
@@ -95,9 +73,12 @@ if [ ! -f "${filedir}/${filename}" ]; then
|
|
|
done
|
|
done
|
|
|
# If curl exists download file
|
|
# If curl exists download file
|
|
|
if [ "$(basename ${curlcmd})" == "curl" ]; then
|
|
if [ "$(basename ${curlcmd})" == "curl" ]; then
|
|
|
|
|
+ # trap to remove part downloaded files
|
|
|
|
|
+ trap fn_fetch_trap EXIT
|
|
|
|
|
+
|
|
|
# if larger file shows progress bar
|
|
# if larger file shows progress bar
|
|
|
- if [ "${filename}" == *".tar"* ]; then
|
|
|
|
|
- curlfetch=$(${curlcmd} --progress-bar -s --fail -o "${filedir}/${filename}" "${fileurl}" 2>&1)
|
|
|
|
|
|
|
+ if [[ $filename == *"tar"* ]]; then
|
|
|
|
|
+ curlfetch=$(${curlcmd} --progress-bar --fail -o "${filedir}/${filename}" "${fileurl}")
|
|
|
else
|
|
else
|
|
|
curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${fileurl}" 2>&1)
|
|
curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${fileurl}" 2>&1)
|
|
|
fi
|
|
fi
|
|
@@ -108,7 +89,9 @@ if [ ! -f "${filedir}/${filename}" ]; then
|
|
|
exit 1
|
|
exit 1
|
|
|
else
|
|
else
|
|
|
fn_printokeol
|
|
fn_printokeol
|
|
|
- fi
|
|
|
|
|
|
|
+ fi
|
|
|
|
|
+ # remove trap
|
|
|
|
|
+ trap - SIGINT SIGQUIT SIGTSTP
|
|
|
else
|
|
else
|
|
|
fn_printfaileol
|
|
fn_printfaileol
|
|
|
echo "Curl is not installed!"
|
|
echo "Curl is not installed!"
|