Refactor reshim command

This commit is contained in:
Akash Manohar J 2015-05-11 22:13:24 +05:30
parent 55584c55a7
commit 0693de24ce

View File

@ -1,27 +1,69 @@
source $(dirname $(dirname $0))/lib/utils.sh
package=$1
version=$2
ensure_shims_dir() {
# Create shims dir if doesn't exist
if [ ! -d $(asdf_dir)/shims ]
then
mkdir $(asdf_dir)/shims
fi
}
write_shim_script() {
local package=$1
local version=$2
local executable_path=$3
local shim_path=$(asdf_dir)/shims/$(basename $executable_path)
echo """#!/usr/bin/env sh
asdf exec ${package} $executable_path \${@:1}
""" > $shim_path
chmod +x $shim_path
}
generate_shims_for_version() {
local package=$1
local full_version=$2
local source_path=$(get_source_path $package)
check_if_source_exists $source_path
IFS=':' read -a version_info <<< "$full_version"
if [ "${version_info[0]}" = "tag" ] || [ "${version_info[0]}" = "commit" ]
then
local install_type="${version_info[0]}"
local version="${version_info[1]}"
else
local install_type="version"
local version="${version_info[0]}"
fi
local space_seperated_list_of_executables=$(sh ${source_path}/bin/list-executables $package $install_type $version "${@:2}")
IFS=' ' read -a all_executables <<< "$space_seperated_list_of_executables"
for executable in "${all_executables[@]}"
do
write_shim_script $package $version $executable
done
}
package=$1
full_version=$2
source_path=$(get_source_path $package)
check_if_source_exists $source_path
ensure_shims_dir
if [ ! -d $(asdf_dir)/shims ]
then
mkdir $(asdf_dir)/shims
fi
package_installs_path=$(asdf_dir)/installs/${package}
if [ $version = "" ]
# If full version is empty then generate shims for all versions in the package
if [ $full_version = "" ]
then
#TODO add support to parse "tag-$version" dir names to what we want
for install in ${package_installs_path}/*/; do
echo "TODO"
echo "$(basename $install)"
full_version_name=$(echo $(basename $install) | sed 's/tag\-/tag\:/' | sed 's/commit-/commit:/')
generate_shims_for_version $package $full_version_name
done
else
generate_shims_for_version $package $version "${@:3}"
generate_shims_for_version $package $full_version
fi