bootstrap: Add uv managed package category
Added python packages that should be installed through uv (instead of pipx). uv provides a modern package and project management solution for python packages which are not found in the other repositories (or which should have additional dependencies which are not). Will also slowly migrate my existing python packages away from pipx toward uv so we need one tool less.
This commit is contained in:
parent
9cc3495c31
commit
c6ebfdd85f
1 changed files with 50 additions and 6 deletions
|
@ -11,6 +11,7 @@ PKG_TSV_FILE=${PKG_TSV_FILE:-bootstrap/packages_stable.tsv}
|
|||
packages_repo="${BOOTSTRAP_PACKAGES:-$(grep -e ' R ' "$PKG_TSV_FILE" | cut -f1 -d' ')}"
|
||||
packages_aur="${BOOTSTRAP_PACKAGES_AUR:-$(grep -e ' A ' "$PKG_TSV_FILE" | cut -f1 -d' ')}"
|
||||
packages_pipx="${BOOTSTRAP_PACKAGES_PIPX:-$(grep -e ' P ' "$PKG_TSV_FILE" | cut -f1,5 -d' ')}"
|
||||
packages_uv="${BOOTSTRAP_PACKAGES_PIPX:-$(grep -e ' U ' "$PKG_TSV_FILE" | cut -f1,5 -d' ')}"
|
||||
|
||||
main() {
|
||||
local cmd=""
|
||||
|
@ -18,7 +19,7 @@ main() {
|
|||
|
||||
case "$1" in
|
||||
-v | --version)
|
||||
printf "Package bootstrap script.\n\n©Marty Oehme\n\nVersion: 0.3\n"
|
||||
printf "Package bootstrap script.\n\n©Marty Oehme\n\nVersion: 0.4\n"
|
||||
;;
|
||||
-h | --help)
|
||||
printf "Usage: install [-f|--force][-v|--version][-h|--help]\n\n-f Do not ask for any confirmations but force update and installation.\n"
|
||||
|
@ -72,6 +73,14 @@ install_packages() {
|
|||
fi
|
||||
}
|
||||
|
||||
# check if any packages in list
|
||||
has_pkg() { # 1=variable containing packages
|
||||
if [ -n "$1" ]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
install_pipx() {
|
||||
if type pipx >/dev/null 2>&1; then
|
||||
echo "Existing pipx installation found .........................................."
|
||||
|
@ -84,6 +93,18 @@ install_pipx() {
|
|||
fi
|
||||
}
|
||||
|
||||
install_uv() {
|
||||
if type uv >/dev/null 2>&1; then
|
||||
echo "Existing uv installation found .........................................."
|
||||
return
|
||||
fi
|
||||
if "$unattended"; then
|
||||
paru -S --noconfirm uv
|
||||
else
|
||||
paru -S uv
|
||||
fi
|
||||
}
|
||||
|
||||
install_pipx_pkgs() {
|
||||
while IFS= read -r line; do
|
||||
if [ -z "$line" ]; then return; fi
|
||||
|
@ -97,6 +118,20 @@ install_pipx_pkgs() {
|
|||
done <<<"$packages_pipx"
|
||||
}
|
||||
|
||||
install_uv_pkgs() {
|
||||
while IFS= read -r line; do
|
||||
if [ -z "$line" ]; then return; fi
|
||||
prog=$(echo "$line" | cut -f1 -d' ')
|
||||
injections=$(echo "$line" | cut -f2 -d' ')
|
||||
|
||||
cmd_with_args="uv tool install"
|
||||
for inject_args in ${injections//,/ }; do
|
||||
cmd_with_args+=" --with $inject_args"
|
||||
done
|
||||
$cmd_with_args "$prog"
|
||||
done <<<"$packages_uv"
|
||||
}
|
||||
|
||||
install() {
|
||||
unattended=$1
|
||||
echo "Beginning package bootstrap ..............................................."
|
||||
|
@ -105,11 +140,20 @@ install() {
|
|||
echo "Installing apps ..........................................................."
|
||||
update_repos "$unattended"
|
||||
install_packages "$unattended"
|
||||
echo "Done ......................................................................"
|
||||
echo "Installing pipx ..........................................................."
|
||||
install_pipx
|
||||
echo "Installing pipx packages .................................................."
|
||||
install_pipx_pkgs
|
||||
|
||||
if has_pkg "$packages_pipx"; then
|
||||
echo "Installing pipx ..........................................................."
|
||||
install_pipx
|
||||
echo "Installing pipx packages .................................................."
|
||||
install_pipx_pkgs
|
||||
fi
|
||||
|
||||
if has_pkg "$packages_uv"; then
|
||||
echo "Installing uv ..........................................................."
|
||||
install_uv
|
||||
echo "Installing uv packages .................................................."
|
||||
install_uv_pkgs
|
||||
fi
|
||||
echo "Done ......................................................................"
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue