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