Standardize operators
This commit is contained in:
86
installJRMC
86
installJRMC
@@ -18,7 +18,7 @@ shopt -s extglob
|
||||
#######################################
|
||||
installJRMC() {
|
||||
|
||||
_scriptversion="0.9.4"
|
||||
_scriptversion="0.9.5"
|
||||
_boardurl="https://yabb.jriver.com/interact/index.php/board,67.0.html"
|
||||
_outputdir="$_basedir/output"
|
||||
_createrepo_webroot="/srv/jriver"
|
||||
@@ -97,7 +97,7 @@ installJRMC() {
|
||||
EOF
|
||||
|
||||
# Exit using passed exit code
|
||||
[[ -z $1 ]] && exit 0 || exit "$1"
|
||||
[[ ! -v 1 ]] && exit 0 || exit "$1"
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ installJRMC() {
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
# set default behavior
|
||||
if [[ $# -eq 0 ]] || [[ $# -eq 1 && "$1" == "--debug" ]]; then
|
||||
if [[ $# -eq 0 ]] || [[ $# -eq 1 && "$1" =~ ^(--debug|-d)$ ]]; then
|
||||
_repoinstall="true"
|
||||
fi
|
||||
|
||||
@@ -189,7 +189,7 @@ installJRMC() {
|
||||
|
||||
err() { echo "Error: $*" >&2; }
|
||||
|
||||
debug() { [[ -n $_debug ]] && echo "Debug: $*"; }
|
||||
debug() { [[ -v _debug ]] && echo "Debug: $*"; }
|
||||
|
||||
#######################################
|
||||
# Prepend this to any command that you wish to execute with sudo
|
||||
@@ -220,7 +220,7 @@ installJRMC() {
|
||||
_printHelpAndExit 1
|
||||
fi
|
||||
|
||||
[[ -n $_debug ]] && echo "Platform: $ID $VERSION_ID"
|
||||
debug "Platform: $ID $VERSION_ID"
|
||||
}
|
||||
|
||||
|
||||
@@ -323,8 +323,8 @@ installJRMC() {
|
||||
#######################################
|
||||
_setUser() {
|
||||
|
||||
[[ -z $_service_user ]] && _service_user="$_exec_user"
|
||||
[[ -z $_createrepo_user ]] && _createrepo_user="$_exec_user"
|
||||
[[ ! -v _service_user ]] && _service_user="$_exec_user"
|
||||
[[ ! -v _createrepo_user ]] && _createrepo_user="$_exec_user"
|
||||
}
|
||||
|
||||
|
||||
@@ -370,8 +370,8 @@ installJRMC() {
|
||||
_packageQuirks "$_pkg"
|
||||
# Insert the package name to test if already installed
|
||||
if [[ "$_pkg" != "" ]]; then
|
||||
if [[ -n $_noquery ]] || ! _pkg_query "$_pkg" > /dev/null 2>&1; then
|
||||
if [[ -n $_url_pkg ]]; then
|
||||
if [[ -v _noquery ]] || ! _pkg_query "$_pkg" > /dev/null 2>&1; then
|
||||
if [[ -v _url_pkg ]]; then
|
||||
_url_pkg_array+=("$_url_pkg")
|
||||
else
|
||||
_pkg_array+=("$_pkg")
|
||||
@@ -383,7 +383,7 @@ installJRMC() {
|
||||
# Install from package name (with gpg check)
|
||||
if [[ ${#_pkg_array[@]} -ge 1 ]]; then
|
||||
echo "Installing:" "${_pkg_array[@]}"
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
if ! _pkg_install "${_pkg_array[@]}"; then
|
||||
err "Failed to install package. Attempting to continue..."
|
||||
return 1
|
||||
@@ -397,7 +397,7 @@ installJRMC() {
|
||||
# Install from package url (without gpg check)
|
||||
if [[ ${#_url_pkg_array[@]} -ge 1 ]]; then
|
||||
echo "Installing:" "${_url_pkg_array[@]}"
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
if ! _pkg_install_nogpg "${_url_pkg_array[@]}"; then
|
||||
err "Failed to install package. Attempting to continue..."
|
||||
return 1
|
||||
@@ -465,7 +465,7 @@ installJRMC() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
if [[ -z "$_mcversion" ]]; then
|
||||
if [[ ! -v _mcversion ]]; then
|
||||
|
||||
_installPackage wget
|
||||
|
||||
@@ -519,7 +519,6 @@ installJRMC() {
|
||||
# _installJRMC should run sucessfully even without running _sanityChecks()
|
||||
#######################################
|
||||
_sanityChecks() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
# Check for bad service name
|
||||
@@ -537,12 +536,11 @@ installJRMC() {
|
||||
|
||||
|
||||
_checkMCInstalled() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
for _service in "${_services[@]}"; do
|
||||
if [[ "$_service" =~ ^(jriver-mediacenter|jriver-mediaserver|jriver-xvnc-mediacenter|jriver-x11vnc)$ ]] \
|
||||
&& [[ -z $_repoinstall && -z $_rpminstall ]] \
|
||||
&& [[ ! -v _repoinstall && ! -v _rpminstall ]] \
|
||||
&& [[ ! -x $(command -v "mediacenter$_mversion") ]]; then
|
||||
err "You are attempting to install a service that depends on JRiver Media Center"
|
||||
err "without installing JRiver Media Center"
|
||||
@@ -554,10 +552,9 @@ installJRMC() {
|
||||
|
||||
|
||||
_checkUser() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
if [[ "$_exec_user" == "root" && -z "$_service_user" && "${_services[*]}" ]]; then
|
||||
if [[ "$_exec_user" == "root" && ! -v _service_user && "${_services[*]}" ]]; then
|
||||
err "Attempting to install services as the root user"
|
||||
err "This is not recommended and we are exiting now to prevent permission hell"
|
||||
err "You can override this safety check by manually specifying --user root"
|
||||
@@ -583,10 +580,12 @@ installJRMC() {
|
||||
# 0 if JRiver Media Center installed sucessfully
|
||||
#######################################
|
||||
_installMCFromRepo() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
echo "Installing JRiver Media Center from repo..."
|
||||
[[ ! -v _debug ]] && \
|
||||
echo "This may take a few minutes"; \
|
||||
echo "Use --debug for verbose output"
|
||||
|
||||
local _mcpkg
|
||||
|
||||
@@ -612,14 +611,14 @@ installJRMC() {
|
||||
_addRepo
|
||||
|
||||
# Update package list
|
||||
[[ -n $_debug ]] && echo "Updating package list"
|
||||
debug "Updating package list"
|
||||
if ! _pkg_update > /dev/null 2>&1; then
|
||||
err "Package update failed!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If user specifies a version, use that
|
||||
if [[ -n $_mcversion ]]; then
|
||||
if [[ -v _mcversion ]]; then
|
||||
_setVersion
|
||||
local _specific_version="true"
|
||||
fi
|
||||
@@ -633,7 +632,7 @@ installJRMC() {
|
||||
|
||||
# Ubuntu/Debian incorporate the mversion into the package name -- more fun!
|
||||
if [[ "$ID" =~ ^(debian|ubuntu|linuxmint)$ ]]; then
|
||||
if [[ -z $_mversion ]]; then
|
||||
if [[ ! -v _mversion ]]; then
|
||||
# Try parsing the latest mversion from the repo
|
||||
if _mcpkg=$(apt-get install mediacenter?? -s -q0 | grep "selecting" | tail -1| awk '{print $3}'); then
|
||||
_mcpkg="${_mcpkg%\'}"
|
||||
@@ -653,22 +652,22 @@ installJRMC() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $_specific_version ]]; then
|
||||
if [[ -v _specific_version ]]; then
|
||||
if [[ "$ID" =~ ^(fedora|centos)$ ]]; then
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
_installPackage "$_mcpkg-$_mcversion"
|
||||
else
|
||||
_installPackage "$_mcpkg-$_mcversion" > /dev/null 2>&1
|
||||
fi
|
||||
elif [[ "$ID" =~ ^(debian|ubuntu|linuxmint)$ ]]; then
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
_installPackage "$_mcpkg=$_mcversion"
|
||||
else
|
||||
_installPackage "$_mcpkg=$_mcversion" > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
_installPackage "$_mcpkg"
|
||||
else
|
||||
_installPackage "$_mcpkg" > /dev/null 2>&1
|
||||
@@ -693,7 +692,6 @@ installJRMC() {
|
||||
# 0 if DEB file downloaded successfully, 1 if failed
|
||||
#######################################
|
||||
_acquireDeb() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
local _debfilename="$_outputdir/SOURCES/MediaCenter-${_mcversion}-amd64.deb"
|
||||
@@ -705,7 +703,7 @@ installJRMC() {
|
||||
if [[ -f "$_debfilename" ]]; then
|
||||
echo "Using local DEB file: $_debfilename"
|
||||
# Else check beta repo
|
||||
elif [[ -n $_betapass ]]; then
|
||||
elif [[ -v _betapass ]]; then
|
||||
if wget -q -O "$_debfilename" \
|
||||
"https://files.jriver.com/mediacenter/channels/v${_mversion}/beta/${_betapass}/MediaCenter-${_mcversion}-amd64.deb"; then
|
||||
true
|
||||
@@ -744,7 +742,6 @@ installJRMC() {
|
||||
# 0 if rpmbuild is successful, 1 if not
|
||||
#######################################
|
||||
_buildRPM() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
# install build dependencies
|
||||
@@ -761,7 +758,7 @@ installJRMC() {
|
||||
local _build_requires=''
|
||||
fi
|
||||
|
||||
if [[ "$ID" == "fedora" && -n $_rpminstall ]]; then
|
||||
if [[ "$ID" == "fedora" && -v _rpminstall ]]; then
|
||||
# TODO: find out why this is required since it's not easily available on CentOS
|
||||
local _requires='Requires: pangox-compat >= 0.0.2'
|
||||
fi
|
||||
@@ -841,7 +838,7 @@ installJRMC() {
|
||||
else
|
||||
# Run rpmbuild
|
||||
echo "Building version $_mcversion, please wait..."
|
||||
if [[ -n $_debug ]]; then
|
||||
if [[ -v _debug ]]; then
|
||||
rpmbuild --define="%_topdir $_outputdir" --define="%_libdir /usr/lib" -bb "$_outputdir/SPECS/mediacenter.spec"
|
||||
else
|
||||
rpmbuild --quiet --define="%_topdir $_outputdir" --define="%_libdir /usr/lib" -bb "$_outputdir/SPECS/mediacenter.spec" > /dev/null 2>&1
|
||||
@@ -869,7 +866,6 @@ installJRMC() {
|
||||
# 0 if createrepo is successful, 1 if not
|
||||
#######################################
|
||||
_runCreaterepo() {
|
||||
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
_installPackage createrepo_c
|
||||
@@ -936,7 +932,7 @@ installJRMC() {
|
||||
local _mjr
|
||||
|
||||
# Allow user to drop an mjr file next to installJRMC
|
||||
if [[ -z $_restorefile ]]; then
|
||||
if [[ ! -v _restorefile ]]; then
|
||||
for _mjr in "$_basedir"/*.mjr; do
|
||||
[[ $_mjr -nt $_restorefile ]] && _restorefile="$_mjr"
|
||||
done
|
||||
@@ -1033,7 +1029,7 @@ installJRMC() {
|
||||
[[ ! -d "${_vncpassfile%/*}" ]] && mkdir -p "${_vncpassfile%/*}"
|
||||
|
||||
if [[ -f "$_vncpassfile" ]]; then
|
||||
if [[ -z $_vncpass ]]; then
|
||||
if [[ ! -v _vncpass ]]; then
|
||||
err "Refusing to overwrite existing $_vncpassfile with an empty password"
|
||||
err "Remove existing $_vncpassfile or set --vncpass to use an empty password"
|
||||
exit 1
|
||||
@@ -1042,7 +1038,7 @@ installJRMC() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $_vncpass ]]; then
|
||||
if [[ -v _vncpass ]]; then
|
||||
if ! x11vnc -storepasswd "$_vncpass" "$_vncpassfile"; then
|
||||
err "Could not create VNC password file"
|
||||
return 1
|
||||
@@ -1066,7 +1062,7 @@ installJRMC() {
|
||||
[[ ! -d "${_vncpassfile%/*}" ]] && mkdir -p "${_vncpassfile%/*}"
|
||||
|
||||
if [[ -f "$_vncpassfile" ]]; then
|
||||
if [[ -z $_vncpass ]]; then
|
||||
if [[ ! -v _vncpass ]]; then
|
||||
err "Refusing to overwrite existing $_vncpassfile with an empty password"
|
||||
err "Remove existing $_vncpassfile or set --vncpass to use an empty password"
|
||||
exit 1
|
||||
@@ -1075,7 +1071,7 @@ installJRMC() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $_vncpass ]]; then
|
||||
if [[ -v _vncpass ]]; then
|
||||
if ! echo "$_vncpass" | vncpasswd -f > "$_vncpassfile"; then
|
||||
err "Could not create VNC password file"
|
||||
return 1
|
||||
@@ -1098,9 +1094,9 @@ installJRMC() {
|
||||
debug "Running: ${FUNCNAME[0]}"
|
||||
|
||||
# Check _display, else DISPLAY, else set to :0 by default
|
||||
if [[ -n $_display ]]; then
|
||||
if [[ -v _display ]]; then
|
||||
_next_display="$_display"
|
||||
elif [[ -n $DISPLAY ]]; then
|
||||
elif [[ -v DISPLAY ]]; then
|
||||
_display="${DISPLAY}"
|
||||
_displaynum="${_display#:}" # strip colon
|
||||
_displaynum="${_displaynum%.*}" # strip suffix
|
||||
@@ -1209,7 +1205,7 @@ installJRMC() {
|
||||
|
||||
local _port=$(( _next_displaynum + 5900 ))
|
||||
|
||||
if [[ -n $_novncauth ]]; then
|
||||
if [[ -v _novncauth ]]; then
|
||||
_exec_start_cmd="/usr/bin/vncserver $_next_display -geometry 1440x900 -alwaysshared -name jriver$_next_display -SecurityTypes None -autokill -xstartup /usr/bin/mediacenter$_mversion"
|
||||
else
|
||||
_exec_start_cmd="/usr/bin/vncserver $_next_display -geometry 1440x900 -alwaysshared -rfbauth $HOME/.vnc/jrmc_passwd -autokill -xstartup /usr/bin/mediacenter$_mversion"
|
||||
@@ -1264,7 +1260,7 @@ installJRMC() {
|
||||
}
|
||||
_getResolution
|
||||
|
||||
if [[ -n $_novncauth ]]; then
|
||||
if [[ -v _novncauth ]]; then
|
||||
_exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry $_res -auth guess -forever -bg -nopw"
|
||||
else
|
||||
_exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry $_res -auth guess -forever -bg -rfbauth $HOME/.vnc/jrmc_passwd"
|
||||
@@ -1415,7 +1411,7 @@ installJRMC() {
|
||||
_buildCommands
|
||||
|
||||
# Install MC using package manager
|
||||
if [[ -n $_repoinstall ]]; then
|
||||
if [[ -v _repoinstall ]]; then
|
||||
[[ "$ID" =~ ^(fedora|centos)$ ]] && _installPackage rpmfusion-free-release epel-release
|
||||
_installMCFromRepo
|
||||
_symlinkCerts
|
||||
@@ -1427,25 +1423,25 @@ installJRMC() {
|
||||
_setVersion
|
||||
|
||||
# Uninstall and exit
|
||||
if [[ -n $_uninstall ]]; then
|
||||
if [[ -v _uninstall ]]; then
|
||||
_uninstall
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Build RPM from source DEB
|
||||
if [[ -n $_rpmbuild ]]; then
|
||||
if [[ -v _rpmbuild ]]; then
|
||||
_installPackage epel-release
|
||||
_acquireDeb
|
||||
_buildRPM
|
||||
fi
|
||||
|
||||
# Run createrepo
|
||||
if [[ -n $_createrepo ]]; then
|
||||
if [[ -v _createrepo ]]; then
|
||||
_runCreaterepo "$_mcrpm"
|
||||
fi
|
||||
|
||||
# Install the rpm
|
||||
if [[ -n $_rpminstall ]]; then
|
||||
if [[ -v _rpminstall ]]; then
|
||||
if [[ "$ID" =~ ^(fedora|centos)$ ]]; then
|
||||
_installPackage rpmfusion-free-release epel-release
|
||||
_installPackage --noquery "$_mcrpm"
|
||||
|
||||
Reference in New Issue
Block a user