move sudo for upgrades into script and call script as user
This commit is contained in:
1 parent
2f3a763054
commit
4c299c5a38
2 files changed
+33
-59
No files matched your search
@@ -23,7 +23,7 @@ alias please="sudo"
|
|||||||
alias NC_scripts="cd ${NC_SCRIPTS}"
|
alias NC_scripts="cd ${NC_SCRIPTS}"
|
||||||
alias regex_rename="${LOCAL_SCRIPTS}/rename.sh"
|
alias regex_rename="${LOCAL_SCRIPTS}/rename.sh"
|
||||||
alias profile="${LOCAL_SCRIPTS}/profile_motd.sh"
|
alias profile="${LOCAL_SCRIPTS}/profile_motd.sh"
|
||||||
alias auto_update="sudo ${LOCAL_SCRIPTS}/utils/upgrade.sh"
|
alias auto_update="${LOCAL_SCRIPTS}/utils/upgrade.sh"
|
||||||
alias aptgrep="apt list --installed | grep -i "
|
alias aptgrep="apt list --installed | grep -i "
|
||||||
alias reboot="sudo /sbin/reboot"
|
alias reboot="sudo /sbin/reboot"
|
||||||
alias shutdown="sudo /sbin/shutdown"
|
alias shutdown="sudo /sbin/shutdown"
|
||||||
|
|||||||
+32
-58
@@ -55,7 +55,6 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
home_dir="/home/lucas"
|
home_dir="/home/lucas"
|
||||||
venv_dir="${home_dir}/tools/spotdl_venv"
|
|
||||||
|
|
||||||
green="\e[32m"
|
green="\e[32m"
|
||||||
red="\e[31m"
|
red="\e[31m"
|
||||||
@@ -161,7 +160,7 @@ for ((i=0; i<${#CMD[@]}; i++)); do
|
|||||||
|
|
||||||
printf "Running: %s\n" "${CMD[$i]}"
|
printf "Running: %s\n" "${CMD[$i]}"
|
||||||
|
|
||||||
if eval "${CMD[$i]}"; then
|
if eval "sudo ${CMD[$i]}"; then
|
||||||
write_out "${MSG[$i]} [${green}OK${norm}]"
|
write_out "${MSG[$i]} [${green}OK${norm}]"
|
||||||
else
|
else
|
||||||
write_out "${MSG[$i]} [${red}FAIL${norm}]"
|
write_out "${MSG[$i]} [${red}FAIL${norm}]"
|
||||||
@@ -177,7 +176,7 @@ if command -v flatpak >/dev/null 2>&1; then
|
|||||||
|
|
||||||
echo "Starting Flatpak Update..."
|
echo "Starting Flatpak Update..."
|
||||||
|
|
||||||
flatpak update -y --noninteractive
|
sudo flatpak update -y --noninteractive
|
||||||
|
|
||||||
ret=$?
|
ret=$?
|
||||||
|
|
||||||
@@ -196,69 +195,44 @@ echo "Finished Package Update"
|
|||||||
# SpotDL Virtual Environment
|
# 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"
|
# Install pipx if missing
|
||||||
|
if ! command -v pipx >/dev/null 2>&1; then
|
||||||
python3 -m venv "$venv_dir"
|
echo "Installing pipx..."
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y pipx
|
||||||
|
pipx ensurepath
|
||||||
fi
|
fi
|
||||||
if [[ -d "$venv_dir" ]]; then
|
|
||||||
if [[ ! -x "${venv_dir}/bin/pip3" ]]; then
|
|
||||||
|
|
||||||
echo "Installing pip"
|
# Check ffmpeg
|
||||||
|
if ! command -v ffmpeg >/dev/null 2>&1; then
|
||||||
|
echo "Installing ffmpeg..."
|
||||||
|
sudo apt install -y ffmpeg
|
||||||
|
fi
|
||||||
|
|
||||||
"${venv_dir}/bin/python" -m ensurepip --upgrade
|
# 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
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo "Updating venv tooling"
|
# 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
|
||||||
|
|
||||||
"${venv_dir}/bin/pip3" install --upgrade \
|
# Add to PATH for current shell
|
||||||
pip \
|
export PATH="$HOME/.deno/bin:$PATH"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
Reference in new issue
Block a user