8383#
8484# eval "$(basalt-package-init 'woof')"
8585# __run "$@"
86+
87+ # TODO: Handle this in a better way
88+ readlinkf_posix () {
89+ [ " ${1:- } " ] || return 1
90+ max_symlinks=40
91+ CDPATH=' ' # to avoid changing to an unexpected directory
92+
93+ target=$1
94+ [ -e " ${target%/ } " ] || target=${1% " ${1##* [!/]} " } # trim trailing slashes
95+ [ -d " ${target:-/ } " ] && target=" $target /"
96+
97+ cd -P . 2> /dev/null || return 1
98+ while [ " $max_symlinks " -ge 0 ] && max_symlinks=$(( max_symlinks - 1 )) ; do
99+ if [ ! " $target " = " ${target%/* } " ]; then
100+ case $target in
101+ /* ) cd -P " ${target%/* } /" 2> /dev/null || break ;;
102+ * ) cd -P " ./${target%/* } " 2> /dev/null || break ;;
103+ esac
104+ target=${target##*/ }
105+ fi
106+
107+ if [ ! -L " $target " ]; then
108+ target=" ${PWD%/ }${target: +/ }${target} "
109+ printf ' %s\n' " ${target:-/ } "
110+ return 0
111+ fi
112+
113+ link=$( ls -dl -- " $target " 2> /dev/null) || break
114+ target=${link#* " $target -> " }
115+ done
116+ return 1
117+ }
118+
86119__run () {
87120if [ " ${BASALT_INTERNAL_ARGS[0]} " = ' --no-assert-version' ]; then
88121__flag_assert_version=' no'
@@ -108,14 +141,10 @@ else
108141fi
109142unset -v __flag_assert_version
110143
111- if [ " $__have_min_version " = ' yes' ]; then
112- __init () { : ; }
113- basalt.package-init || exit
114- basalt.package-load
115- else
116- init.get_basalt_package_dir
117- BASALT_PACKAGE_DIR=$REPLY
118- fi
144+ __zero=" $( readlinkf_posix " $0 " ) "
145+ init.get_basalt_package_dir " ${__zero%/* } "
146+ BASALT_PACKAGE_DIR=$REPLY
147+ unset -v __zero
119148
120149__bin_file=" $BASALT_PACKAGE_DIR /pkg/src/bin/$__bin_name .sh"
121150if [ ! -f " $__bin_file " ]; then
0 commit comments