Compare commits
No commits in common. "main" and "root" have entirely different histories.
1 changed files with 0 additions and 176 deletions
176
re.sh
176
re.sh
|
@ -1,176 +0,0 @@
|
||||||
#! /usr/bin/env sh
|
|
||||||
|
|
||||||
root="/prj/venv"
|
|
||||||
url="http://localhost:8000"
|
|
||||||
url_pypi="${url}/pypi/os/simple"
|
|
||||||
|
|
||||||
activate() {
|
|
||||||
echo
|
|
||||||
export VIRTUAL_ENV="${1}"
|
|
||||||
echo "→ ${VIRTUAL_ENV}"
|
|
||||||
export OLD_PATH="${PATH}"
|
|
||||||
export PATH="${VIRTUAL_ENV}/bin:${PATH}"
|
|
||||||
echo "→ ${PATH}"
|
|
||||||
python3 --version
|
|
||||||
pip --version
|
|
||||||
}
|
|
||||||
caches() {
|
|
||||||
local command="${1}"
|
|
||||||
set \
|
|
||||||
".cache/pip" \
|
|
||||||
".cache/uv" \
|
|
||||||
".local/share/pip" \
|
|
||||||
".local/share/uv"
|
|
||||||
echo
|
|
||||||
echo "caches:"
|
|
||||||
for cache in "${@}"; do
|
|
||||||
"${command}" "${HOME}/${cache}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
deactivate() {
|
|
||||||
echo
|
|
||||||
echo "← ${VIRTUAL_ENV}"
|
|
||||||
export PATH="${OLD_PATH}"
|
|
||||||
echo "← ${PATH}"
|
|
||||||
unset OLD_PATH VIRTUAL_ENV
|
|
||||||
}
|
|
||||||
list() {
|
|
||||||
echo
|
|
||||||
ls -a -l "${1}/${2}"
|
|
||||||
}
|
|
||||||
list_venv() {
|
|
||||||
list "${1}" "bin"
|
|
||||||
}
|
|
||||||
pip_install() {
|
|
||||||
echo
|
|
||||||
pip install \
|
|
||||||
--index-url "${url_pypi}" \
|
|
||||||
--no-cache-dir \
|
|
||||||
"${@}"
|
|
||||||
}
|
|
||||||
remove() {
|
|
||||||
rm --force --recursive "${@}"
|
|
||||||
}
|
|
||||||
uv_install() {
|
|
||||||
set \
|
|
||||||
"pelican" \
|
|
||||||
\
|
|
||||||
"hatch" \
|
|
||||||
\
|
|
||||||
"Sphinx" \
|
|
||||||
"sphinx-rtd-theme" \
|
|
||||||
\
|
|
||||||
"gitlint" \
|
|
||||||
\
|
|
||||||
"pydoclint" \
|
|
||||||
"pylint" \
|
|
||||||
"ruff" \
|
|
||||||
\
|
|
||||||
"pytest" \
|
|
||||||
\
|
|
||||||
"toml" \
|
|
||||||
\
|
|
||||||
"twine" \
|
|
||||||
\
|
|
||||||
"mypy" \
|
|
||||||
"pyright" \
|
|
||||||
\
|
|
||||||
"ruamel.yaml" \
|
|
||||||
"PyYAML" \
|
|
||||||
"types-PyYAML"
|
|
||||||
echo
|
|
||||||
uv pip install --index-url "${url_pypi}" "${@}"
|
|
||||||
}
|
|
||||||
uv_python() {
|
|
||||||
echo
|
|
||||||
export UV_PYTHON_INSTALL_MIRROR="${url}/cpypy"
|
|
||||||
uv python install "${2}"
|
|
||||||
unset UV_PYTHON_INSTALL_MIRROR
|
|
||||||
}
|
|
||||||
uv_venv() {
|
|
||||||
echo
|
|
||||||
uv venv \
|
|
||||||
--allow-existing \
|
|
||||||
--index-url "${url_pypi}" \
|
|
||||||
--python "${2}" \
|
|
||||||
--relocatable \
|
|
||||||
--seed \
|
|
||||||
"${1}"
|
|
||||||
}
|
|
||||||
venvs() {
|
|
||||||
local action="${1}"
|
|
||||||
local venv version
|
|
||||||
set \
|
|
||||||
"3.12" \
|
|
||||||
"3.11" \
|
|
||||||
"3.10"
|
|
||||||
for version in "${@}"; do
|
|
||||||
url_pypi="${url}/pypi/${version}/simple"
|
|
||||||
venv="${root}/${version}"
|
|
||||||
echo
|
|
||||||
echo "${venv} ← ${action}"
|
|
||||||
case "${action}" in
|
|
||||||
"create")
|
|
||||||
export UV_PYTHON_INSTALL_DIR="${venv}/cpypy"
|
|
||||||
echo "→ install python ${version}"
|
|
||||||
uv_python "${venv}" "${version}"
|
|
||||||
echo "→ create venv ${version}"
|
|
||||||
uv_venv "${venv}" "${version}"
|
|
||||||
unset UV_PYTHON_INSTALL_DIR
|
|
||||||
;;
|
|
||||||
"init")
|
|
||||||
activate "${venv}"
|
|
||||||
pip_install "uv"
|
|
||||||
deactivate
|
|
||||||
;;
|
|
||||||
"install")
|
|
||||||
activate "${venv}"
|
|
||||||
uv_install
|
|
||||||
deactivate
|
|
||||||
;;
|
|
||||||
"link")
|
|
||||||
activate "${venv}"
|
|
||||||
for module in "rwx"; do
|
|
||||||
ln --symbolic \
|
|
||||||
"/rwx/rwx/${module}" \
|
|
||||||
"${venv}/lib/python${version}/site-packages/${module}"
|
|
||||||
done
|
|
||||||
deactivate
|
|
||||||
;;
|
|
||||||
"list")
|
|
||||||
activate "${venv}"
|
|
||||||
list_venv "${venv}"
|
|
||||||
deactivate
|
|
||||||
;;
|
|
||||||
"relate")
|
|
||||||
absolute="$(readlink -f "${venv}/bin/python")"
|
|
||||||
prevenv="$(readlink -f "${venv}")"
|
|
||||||
relative=$(echo "${absolute}" | sed "s|${prevenv}|..|")
|
|
||||||
ln --force --symbolic "${relative}" "${venv}/bin/python"
|
|
||||||
;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
caches remove
|
|
||||||
|
|
||||||
remove "${root}"
|
|
||||||
|
|
||||||
os="${root}/os"
|
|
||||||
python3 -m "venv" "${os}"
|
|
||||||
activate "${os}"
|
|
||||||
list_venv "${os}"
|
|
||||||
pip_install --upgrade "pip"
|
|
||||||
pip_install "uv"
|
|
||||||
list_venv "${os}"
|
|
||||||
venvs create
|
|
||||||
deactivate
|
|
||||||
|
|
||||||
venvs init
|
|
||||||
venvs relate
|
|
||||||
venvs link
|
|
||||||
venvs install
|
|
||||||
venvs list
|
|
||||||
|
|
||||||
caches list_venv
|
|
Loading…
Reference in a new issue