You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.4 KiB
114 lines
3.4 KiB
#!/bin/bash |
|
# Copyright 2010-2012, Asio Software Technologies |
|
# Distributed under the terms of the GNU General Public License v3 |
|
|
|
|
|
#------------------------------------------------------------------------------- |
|
# Completely removes log file |
|
#------------------------------------------------------------------------------- |
|
function cleanLogs() { |
|
rm -rf ${LOGFILE} &> /dev/null |
|
} |
|
|
|
#------------------------------------------------------------------------------- |
|
# Completely removes temp directory |
|
#------------------------------------------------------------------------------- |
|
function cleanTemp() { |
|
rm -rf ${TEMPDIR} &> /dev/null |
|
} |
|
|
|
#------------------------------------------------------------------------------- |
|
# Downloads files into specified or current directory |
|
# Parameters: %url% %directory% |
|
#------------------------------------------------------------------------------- |
|
function download() { |
|
local DEST FILENAME RESULT URL |
|
DEST="${2}" |
|
FILENAME="${1##*/}" |
|
URL="${1}" |
|
if isSet DEST; then |
|
DEST="${DEST}/${FILENAME}" |
|
else |
|
DEST="./${FILENAME}" |
|
fi |
|
logMessage "Downloading ${URL} to ${DEST}" "DEBUG" |
|
echo -ne " ${STAR_GREEN} ${FILENAME}: " |
|
wget --progress=dot -c -t ${FETCHTRIES} -T ${FETCHTIMEOUT} -O "${DEST}" \ |
|
${URL} 2>&1 | grep --line-buffered "%" | sed -u -e "s/[\.\,]//g" | \ |
|
awk '{printf("\b\b\b\b%4s", $2)}' |
|
RESULT=${PIPESTATUS[0]} |
|
echo -ne "\b\b\b\b" |
|
if [ ${RESULT} -ne 0 ]; then |
|
logOutput "Unable to download ${URL}! Exit code: ${RESULT}" |
|
echo -e "${COLOR_RED}${COLOR_BOLD}ERROR${COLOR_WHITE}${COLOR_NORMAL}" |
|
else |
|
echo -e "${COLOR_GREEN}${COLOR_BOLD}DONE${COLOR_WHITE}${COLOR_NORMAL}" |
|
fi |
|
return ${RESULT} |
|
} |
|
|
|
#------------------------------------------------------------------------------- |
|
# Creates all components of the specified directories |
|
# Parameters: %directory% |
|
#------------------------------------------------------------------------------- |
|
function makeDirectory() { |
|
local OUTPUT RESULT |
|
OUTPUT=$(install -d "${@}" 2>&1) |
|
RESULT=${?} |
|
if [ ${RESULT} -ne 0 ]; then |
|
logOutput "${OUTPUT}" |
|
fi |
|
return ${RESULT} |
|
} |
|
|
|
#------------------------------------------------------------------------------- |
|
# Creates a symbolic link between to files in specified target directory |
|
# Parameters: %source% %target% |
|
#------------------------------------------------------------------------------- |
|
function makeLink() { |
|
local DESTDIR OUTPUT RESULT |
|
DESTDIR="${2%/*}" |
|
[[ ! -d ${DESTDIR} ]] && makeDirectory "${DESTDIR}" |
|
OUTPUT=$(ln -sfn "${1}" "${2}" 2>&1) |
|
RESULT=${?} |
|
if [ ${RESULT} -ne 0 ]; then |
|
logOutput "${OUTPUT}" |
|
fi |
|
return ${RESULT} |
|
} |
|
|
|
#------------------------------------------------------------------------------- |
|
# Extracts any tar based archive into specified directory |
|
# Parameters: %tarball% %destination% |
|
#------------------------------------------------------------------------------- |
|
function unpack() { |
|
local DST EXT OUTPUT RESULT SRC |
|
SRC="${1}" |
|
DST="${2}" |
|
EXT=$(toLower "${SRC##*.}") |
|
if [ ! -d ${DST} ]; then |
|
makeDirectory ${DST} || return 1 |
|
fi |
|
case "${EXT}" in |
|
bz2) |
|
if [ -e /usr/bin/pbzip2 ]; then |
|
OUTPUT=$(pbzip2 -dc "${SRC}" 2>&1 | tar xpf - -C "${DST}" 2>&1) |
|
else |
|
OUTPUT=$(tar xjpf "${SRC}" -C "${DST}" 2>&1) |
|
fi |
|
RESULT=${?} |
|
;; |
|
gz|xz|z) |
|
OUTPUT=$(tar xpf "${SRC}" -C "${DST}" 2>&1) |
|
RESULT=${?} |
|
;; |
|
*) |
|
OUTPUT="Unrecognized source compression for ${SRC}" |
|
RESULT=1 |
|
;; |
|
esac |
|
if [ ${RESULT} -ne 0 ]; then |
|
logOutput "${OUTPUT}" |
|
fi |
|
return ${RESULT} |
|
}
|
|
|