Refactor execute() and restoreLicense()
This commit is contained in:
117
installJRMC
117
installJRMC
@@ -113,9 +113,11 @@ askOk() {
|
|||||||
[[ "${response,,}" =~ ^(yes|y)$ ]]
|
[[ "${response,,}" =~ ^(yes|y)$ ]]
|
||||||
}
|
}
|
||||||
execute() {
|
execute() {
|
||||||
declare cmd="$*"
|
if debug "$*"; then
|
||||||
debug "$cmd" || cmd+=" &>/dev/null"
|
eval "$*"
|
||||||
eval "${cmd[*]}"
|
else
|
||||||
|
eval "$* &>/dev/null"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -522,8 +524,6 @@ installPackage() {
|
|||||||
installMCFromRepo() {
|
installMCFromRepo() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
declare -a pkg_install_cmd
|
|
||||||
|
|
||||||
case "$ID" in
|
case "$ID" in
|
||||||
fedora|centos)
|
fedora|centos)
|
||||||
sudo bash -c "cat <<-EOF > /etc/yum.repos.d/jriver.repo
|
sudo bash -c "cat <<-EOF > /etc/yum.repos.d/jriver.repo
|
||||||
@@ -534,7 +534,7 @@ installMCFromRepo() {
|
|||||||
EOF"
|
EOF"
|
||||||
;;
|
;;
|
||||||
debian|ubuntu)
|
debian|ubuntu)
|
||||||
repo_dir="/etc/apt/sources.list.d"
|
declare repo_dir="/etc/apt/sources.list.d"
|
||||||
[[ -d $repo_dir ]] || execute "sudo mkdir -p /etc/apt/sources.list.d"
|
[[ -d $repo_dir ]] || execute "sudo mkdir -p /etc/apt/sources.list.d"
|
||||||
sudo rm -rf "$repo_dir"/mediacenter*.list
|
sudo rm -rf "$repo_dir"/mediacenter*.list
|
||||||
installPackage wget
|
installPackage wget
|
||||||
@@ -559,14 +559,11 @@ installMCFromRepo() {
|
|||||||
# Install mesa-va-drivers-freeworld separately from the RPM for dnf swap
|
# Install mesa-va-drivers-freeworld separately from the RPM for dnf swap
|
||||||
installMesa
|
installMesa
|
||||||
|
|
||||||
pkg_install_cmd=(
|
if ! execute installPackage \
|
||||||
installPackage
|
--skip-check-installed \
|
||||||
--skip-check-installed
|
--allow-downgrades \
|
||||||
--allow-downgrades
|
--no-gpg-check \
|
||||||
--no-gpg-check
|
"$MCPKG"; then
|
||||||
"$MCPKG"
|
|
||||||
)
|
|
||||||
if ! execute "${pkg_install_cmd[*]}"; then
|
|
||||||
err "Package install failed!"
|
err "Package install failed!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -796,11 +793,6 @@ buildRPM() {
|
|||||||
installMCDEB() {
|
installMCDEB() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
declare pkg_install_cmd
|
|
||||||
pkg_install_cmd=(installPackage
|
|
||||||
--skip-check-installed
|
|
||||||
--no-gpg-check
|
|
||||||
--allow-downgrades)
|
|
||||||
if (( COMPAT_SWITCH )); then
|
if (( COMPAT_SWITCH )); then
|
||||||
declare extract_dir && extract_dir="$(mktemp -d)"
|
declare extract_dir && extract_dir="$(mktemp -d)"
|
||||||
pushd "$extract_dir" &>/dev/null || return
|
pushd "$extract_dir" &>/dev/null || return
|
||||||
@@ -817,8 +809,12 @@ installMCDEB() {
|
|||||||
popd &>/dev/null || return
|
popd &>/dev/null || return
|
||||||
rm -rf "$extract_dir"
|
rm -rf "$extract_dir"
|
||||||
fi
|
fi
|
||||||
pkg_install_cmd+=("$MCDEB")
|
|
||||||
execute "${pkg_install_cmd[*]}"
|
execute installPackage \
|
||||||
|
--skip-check-installed \
|
||||||
|
--no-gpg-check \
|
||||||
|
--allow-downgrades \
|
||||||
|
"$MCDEB"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -872,8 +868,6 @@ installMesa() {
|
|||||||
installMCARCH() {
|
installMCARCH() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
declare -a makepkg_cmd
|
|
||||||
|
|
||||||
echo "Arch install under construction"
|
echo "Arch install under construction"
|
||||||
[[ -d "$OUTPUTDIR/PKGBUILD" ]] || mkdir -p "$OUTPUTDIR/PKGBUILD"
|
[[ -d "$OUTPUTDIR/PKGBUILD" ]] || mkdir -p "$OUTPUTDIR/PKGBUILD"
|
||||||
cat <<-EOF > "$OUTPUTDIR/PKGBUILD/mediacenter.pkgbuild"
|
cat <<-EOF > "$OUTPUTDIR/PKGBUILD/mediacenter.pkgbuild"
|
||||||
@@ -902,18 +896,17 @@ installMCARCH() {
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
makepkg_cmd=(makepkg --install
|
|
||||||
--syncdeps
|
|
||||||
--clean
|
|
||||||
--cleanbuild
|
|
||||||
--skipinteg
|
|
||||||
--force
|
|
||||||
--noconfirm
|
|
||||||
-p mediacenter.pkgbuild)
|
|
||||||
|
|
||||||
pushd "$OUTPUTDIR/PKGBUILD" &>/dev/null || return
|
pushd "$OUTPUTDIR/PKGBUILD" &>/dev/null || return
|
||||||
|
|
||||||
if ! execute "${makepkg_cmd[*]}"; then
|
if ! execute makepkg \
|
||||||
|
--install \
|
||||||
|
--syncdeps \
|
||||||
|
--clean \
|
||||||
|
--cleanbuild \
|
||||||
|
--skipinteg \
|
||||||
|
--force \
|
||||||
|
--noconfirm \
|
||||||
|
-p mediacenter.pkgbuild; then
|
||||||
echo "makepkg failed"
|
echo "makepkg failed"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -973,24 +966,24 @@ runCreaterepo() {
|
|||||||
symlinkCerts() {
|
symlinkCerts() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
declare mc_cert_link="/usr/lib/jriver/MC30/ca-certificates.crt"
|
declare mc_cert_link="/usr/lib/jriver/MC$MVERSION/ca-certificates.crt"
|
||||||
declare target_cert
|
declare target_cert f
|
||||||
declare -a ln_cmd
|
declare -a source_certs=(
|
||||||
|
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem"
|
||||||
|
"/var/lib/ca-certificates/ca-bundle.pem")
|
||||||
|
|
||||||
target_cert=$(readlink -f "$mc_cert_link")
|
target_cert=$(readlink -f "$mc_cert_link")
|
||||||
|
|
||||||
[[ -f $target_cert ]] && return 0
|
[[ -f $target_cert ]] && return 0
|
||||||
|
|
||||||
if [[ -f /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ]]; then
|
for f in "${source_certs[@]}"; do
|
||||||
ln_cmd=(sudo ln -fs /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem "$mc_cert_link") # For RHEL/CentOS
|
if [[ -f "$f" ]]; then
|
||||||
elif [[ -f /var/lib/ca-certificates/ca-bundle.pem ]]; then
|
if ! execute ln -fs "$f" "$mc_cert_link"; then
|
||||||
ln_cmd=(sudo ln -fs /var/lib/ca-certificates/ca-bundle.pem "$mc_cert_link") # For SUSE
|
err "Symlinking certificate failed"
|
||||||
fi
|
|
||||||
|
|
||||||
if ! execute "${ln_cmd[*]}"; then
|
|
||||||
err "Symlinking certificates failed"
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1000,22 +993,28 @@ symlinkCerts() {
|
|||||||
restoreLicense() {
|
restoreLicense() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
declare mjrfile
|
declare f
|
||||||
|
declare -a mjrfiles_sorted
|
||||||
|
|
||||||
# Allow user to put the mjr file next to installJRMC
|
# Glob mjr files from common directories
|
||||||
if [[ ! -v RESTOREFILE ]]; then
|
declare -a mjrfiles=(
|
||||||
for mjrfile in "$PWD"/*.mjr; do
|
"$RESTOREFILE"
|
||||||
[[ $mjrfile -nt $RESTOREFILE ]] && RESTOREFILE="$mjrfile"
|
"$PWD"/*.mjr
|
||||||
|
"$OUTPUTDIR"/*.mjr
|
||||||
|
"$HOME"/[dD]ownloads/*.mjr
|
||||||
|
"$HOME"/[dD]ocuments/*.mjr
|
||||||
|
)
|
||||||
|
|
||||||
|
# Sort globbed files by time, newest first
|
||||||
|
mjrfiles_sorted=("$(ls -t "${mjrfiles[@]}")")
|
||||||
|
|
||||||
|
for f in "${mjrfiles_sorted[@]}"; do
|
||||||
|
if [[ -f "$f" ]]; then
|
||||||
|
if execute "mediacenter$MVERSION" "/RestoreFromFile" "$f"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore license
|
|
||||||
if [[ -f "$RESTOREFILE" ]]; then
|
|
||||||
if ! "mediacenter$MVERSION" /RestoreFromFile "$RESTOREFILE"; then
|
|
||||||
err "Automatic license restore failed"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user