Avoid redownloading python-build, use asdf_dir instead of hard-coded path, close #11
This commit is contained in:
parent
c2bd01edf0
commit
331e65d419
6 changed files with 38 additions and 31 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/pyenv
|
|
@ -1,13 +1,13 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
get_legacy_version() {
|
get_legacy_version() {
|
||||||
current_directory=$1
|
local current_directory="$1"
|
||||||
python_version_file="$current_directory/.python-version"
|
local python_version_file="$current_directory/.python-version"
|
||||||
|
|
||||||
# Get version from .python-version file. .python-version is used by pyenv
|
# Get version from .python-version file. .python-version is used by pyenv
|
||||||
if [ -f $python_version_file ]; then
|
if [ -f "$python_version_file" ]; then
|
||||||
cat $python_version_file
|
cat "$python_version_file"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
get_legacy_version $1
|
get_legacy_version "$1"
|
||||||
|
|
19
bin/install
19
bin/install
|
@ -1,27 +1,20 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $(dirname $0)/utils.sh
|
||||||
|
|
||||||
install_python() {
|
install_python() {
|
||||||
local version="$1"
|
local version="$1"
|
||||||
local install_path="$2"
|
local install_path="$2"
|
||||||
|
|
||||||
local tmp_download_dir="$(mktemp -d -t asdf-python.XXX)"
|
local tmp_dir="$(mktemp -d -t asdf-python.XXX)"
|
||||||
|
|
||||||
echo "Downloading python-build..."
|
ensure_python_build_installed
|
||||||
download_python_build $tmp_download_dir > /dev/null 2>&1
|
|
||||||
|
|
||||||
local python_build="$tmp_download_dir/pyenv/plugins/python-build/bin/python-build"
|
|
||||||
|
|
||||||
ASDF_CONCURRENCY="${ASDF_CONCURRENCY:-1}"
|
ASDF_CONCURRENCY="${ASDF_CONCURRENCY:-1}"
|
||||||
echo "python-build $version $install_path"
|
echo "python-build $version $install_path"
|
||||||
MAKE_OPTS="$MAKE_OPTS -j$ASDF_CONCURRENCY" TMP_DIR="$tmp_download_dir" $python_build $version $install_path
|
MAKE_OPTS="$MAKE_OPTS -j$ASDF_CONCURRENCY" TMP_DIR="$tmp_dir" $(python_build_path) $version $install_path
|
||||||
echo "Cleaning up"
|
echo "Cleaning up"
|
||||||
rm -rf "$tmp_download_dir"
|
rm -rf "$tmp_dir"
|
||||||
}
|
|
||||||
|
|
||||||
download_python_build() {
|
|
||||||
local tmp_dir="$1"
|
|
||||||
local pyenv_url="git://github.com/yyuu/pyenv.git"
|
|
||||||
git clone $pyenv_url $tmp_dir/pyenv
|
|
||||||
}
|
}
|
||||||
|
|
||||||
install_python $ASDF_INSTALL_VERSION $ASDF_INSTALL_PATH
|
install_python $ASDF_INSTALL_VERSION $ASDF_INSTALL_PATH
|
||||||
|
|
14
bin/list-all
14
bin/list-all
|
@ -1,17 +1,11 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $(dirname $0)/utils.sh
|
||||||
|
|
||||||
list_all() {
|
list_all() {
|
||||||
local tmp_download_dir="$(mktemp -d -t asdf-python.XXX)"
|
ensure_python_build_installed
|
||||||
download_python_build $tmp_download_dir > /dev/null 2>&1
|
$(python_build_path) --definitions | tr '\n' ' '
|
||||||
local python_build="$tmp_download_dir/pyenv/plugins/python-build/bin/python-build"
|
|
||||||
$python_build --definitions | tr '\n' ' '
|
|
||||||
rm -rf "$tmp_download_dir"
|
rm -rf "$tmp_download_dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
download_python_build() {
|
|
||||||
local tmp_dir="$1"
|
|
||||||
local pyenv_url="git://github.com/yyuu/pyenv.git"
|
|
||||||
git clone $pyenv_url $tmp_dir/pyenv
|
|
||||||
}
|
|
||||||
|
|
||||||
list_all
|
list_all
|
||||||
|
|
19
bin/utils.sh
Normal file
19
bin/utils.sh
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
ensure_python_build_installed() {
|
||||||
|
if [ ! -f "$(python_build_path)" ]; then
|
||||||
|
download_python_build
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
download_python_build() {
|
||||||
|
echo "Downloading python-build..."
|
||||||
|
local pyenv_url="git://github.com/yyuu/pyenv.git"
|
||||||
|
git clone $pyenv_url "$(pyenv_path)"
|
||||||
|
}
|
||||||
|
|
||||||
|
python_build_path() {
|
||||||
|
echo "$(pyenv_path)/plugins/python-build/bin/python-build"
|
||||||
|
}
|
||||||
|
|
||||||
|
pyenv_path() {
|
||||||
|
echo "$(dirname $(dirname $0))/pyenv"
|
||||||
|
}
|
|
@ -3,9 +3,9 @@
|
||||||
source $(dirname $(dirname $0))/lib/utils.sh
|
source $(dirname $(dirname $0))/lib/utils.sh
|
||||||
|
|
||||||
run_python() {
|
run_python() {
|
||||||
plugin_name="python"
|
local plugin_name="python"
|
||||||
|
|
||||||
full_version=$(get_preset_version_for $plugin_name)
|
local full_version=$(get_preset_version_for $plugin_name)
|
||||||
|
|
||||||
if [ "$full_version" == "" ]; then
|
if [ "$full_version" == "" ]; then
|
||||||
echo "No version set for ${plugin_name}"
|
echo "No version set for ${plugin_name}"
|
||||||
|
@ -16,7 +16,7 @@ run_python() {
|
||||||
|
|
||||||
local short_python_version="${splitted_version[0]}.${splitted_version[1]}"
|
local short_python_version="${splitted_version[0]}.${splitted_version[1]}"
|
||||||
|
|
||||||
exec $HOME/.asdf/bin/private/asdf-exec python bin/python${short_python_version} "$@"
|
exec $(asdf_dir)/bin/private/asdf-exec python bin/python${short_python_version} "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_python "$@"
|
run_python "$@"
|
||||||
|
|
Loading…
Reference in a new issue