move sudo for upgrades into script and call script as user
This commit is contained in:
1 parent
2f3a763054
commit
4c299c5a38
2 files changed
+37
-63
No files matched your search
+36
-62
@@ -55,7 +55,6 @@ EOF
|
||||
}
|
||||
|
||||
home_dir="/home/lucas"
|
||||
venv_dir="${home_dir}/tools/spotdl_venv"
|
||||
|
||||
green="\e[32m"
|
||||
red="\e[31m"
|
||||
@@ -161,7 +160,7 @@ for ((i=0; i<${#CMD[@]}; i++)); do
|
||||
|
||||
printf "Running: %s\n" "${CMD[$i]}"
|
||||
|
||||
if eval "${CMD[$i]}"; then
|
||||
if eval "sudo ${CMD[$i]}"; then
|
||||
write_out "${MSG[$i]} [${green}OK${norm}]"
|
||||
else
|
||||
write_out "${MSG[$i]} [${red}FAIL${norm}]"
|
||||
@@ -177,7 +176,7 @@ if command -v flatpak >/dev/null 2>&1; then
|
||||
|
||||
echo "Starting Flatpak Update..."
|
||||
|
||||
flatpak update -y --noninteractive
|
||||
sudo flatpak update -y --noninteractive
|
||||
|
||||
ret=$?
|
||||
|
||||
@@ -196,69 +195,44 @@ echo "Finished Package Update"
|
||||
# SpotDL Virtual Environment
|
||||
###############################################################################
|
||||
|
||||
if [[ ! -d "$venv_dir" ]] && [[ "$1" == "--create-venv" ]]; then
|
||||
|
||||
echo "Creating SpotDL virtual environment"
|
||||
PACKAGES=(
|
||||
yt-dlp
|
||||
spotdl
|
||||
)
|
||||
|
||||
mkdir -p "${home_dir}/tools"
|
||||
|
||||
python3 -m venv "$venv_dir"
|
||||
# Install pipx if missing
|
||||
if ! command -v pipx >/dev/null 2>&1; then
|
||||
echo "Installing pipx..."
|
||||
sudo apt update
|
||||
sudo apt install -y pipx
|
||||
pipx ensurepath
|
||||
fi
|
||||
if [[ -d "$venv_dir" ]]; then
|
||||
if [[ ! -x "${venv_dir}/bin/pip3" ]]; then
|
||||
|
||||
echo "Installing pip"
|
||||
|
||||
"${venv_dir}/bin/python" -m ensurepip --upgrade
|
||||
|
||||
# Check ffmpeg
|
||||
if ! command -v ffmpeg >/dev/null 2>&1; then
|
||||
echo "Installing ffmpeg..."
|
||||
sudo apt install -y ffmpeg
|
||||
fi
|
||||
|
||||
# Install or update packages
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if pipx list --short 2>/dev/null | grep -qx "$pkg"; then
|
||||
echo "Updating $pkg..."
|
||||
pipx upgrade "$pkg"
|
||||
else
|
||||
echo "Installing $pkg..."
|
||||
pipx install "$pkg"
|
||||
fi
|
||||
|
||||
echo "Updating venv tooling"
|
||||
|
||||
"${venv_dir}/bin/pip3" install --upgrade \
|
||||
pip \
|
||||
setuptools \
|
||||
wheel
|
||||
|
||||
###############################################################################
|
||||
# Ensure required packages exist
|
||||
###############################################################################
|
||||
|
||||
mkdir -p "${home_dir}/.local/bin"
|
||||
|
||||
packages=(
|
||||
spotdl
|
||||
yt-dlp
|
||||
youtube-dl
|
||||
)
|
||||
|
||||
for package in "${packages[@]}"; do
|
||||
|
||||
echo "Checking package: ${package}"
|
||||
|
||||
if ! "${venv_dir}/bin/pip3" show "$package" >/dev/null 2>&1; then
|
||||
|
||||
echo "Installing ${package}"
|
||||
|
||||
"${venv_dir}/bin/pip3" install "$package"
|
||||
|
||||
else
|
||||
|
||||
echo "Updating ${package}"
|
||||
|
||||
"${venv_dir}/bin/pip3" install --upgrade "$package"
|
||||
fi
|
||||
|
||||
if [[ -x "${venv_dir}/bin/${bin}" ]]; then
|
||||
|
||||
ln -sf "${venv_dir}/bin/${package}" "${home_dir}/.local/bin/${package}"
|
||||
|
||||
fi
|
||||
if [[ $? -eq 0 ]]; then
|
||||
write_out "${package} [${green}OK${norm}]"
|
||||
else
|
||||
write_out "${package} [${red}FAIL${norm}]"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Install Deno for spotdl if missing
|
||||
if ! command -v deno >/dev/null 2>&1; then
|
||||
echo "Installing Deno..."
|
||||
curl -fsSL https://deno.land/install.sh | sh
|
||||
|
||||
# Add to PATH for current shell
|
||||
export PATH="$HOME/.deno/bin:$PATH"
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
|
||||
Reference in new issue
Block a user