Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 75 lines (60 sloc) 1.769 kb
#!/usr/bin/env bash
# Usage: $rvm_path/scripts/environment-convertor <shell> <environment>
unset GREP_COLOR
unset GREP_OPTIONS
source "$rvm_path/scripts/base"
convert_path_to_fish()
{
local parts path_parts
path_part="$1"
parts="$(echo "$path_part" | sed -e 's#:\$PATH##' -e "s#:#\" \"#g" -e "s#^export \\([^[:space:]]*\\)=##")"
printf "\
for path_part in $parts
if test -d $path_part
set PATH $path_parth $PATH
end
end
"
return 0
}
convert_unset_to_fish()
{
sed 's#^unset #set -e #'
}
convert_exports_to_fish()
{
sed -e "s#:#' '#g" -e "s#^\\(export \\)\\{0,1\\}\\([^[:space:]]*\\)=#set -x \\2 #"
}
contents_of_environment_file()
{
cat "$rvm_path/environments/$(__rvm_environment_identifier)"
}
convert_to_shell()
{
convert_path_to_fish "$(contents_of_environment_file | \grep '^export PATH=')"
while read -r shell_line; do
if echo "$shell_line" | \grep -q '^unset '; then
echo "$shell_line" | convert_unset_to_fish
else
echo "$shell_line" | convert_exports_to_fish
fi
done < <(contents_of_environment_file | \grep -v '^export [^=]*$' | \grep -v '^export PATH=')
unset shell_line
}
ensure_has_shell()
{
for item in "path" "unset" "exports"; do
command -v "convert_${item}_to_${1}" >/dev/null || return 1
done; unset item
}
args=($*)
shell_name="${args[0]}"
environment_name="${args[1]:-"$(__rvm_environment_identifier)"}"
args="$(echo ${args[@]:2}) " # Strip trailing / leading / extra spacing.
[[ -n "$shell_name" && -n "$environment_name" ]] || exit 1
ensure_has_shell "$shell_name" || exit 1
# Check we're loading a different shell.
if [[ "$(__rvm_environment_identifier)" != "$environment_name" ]]; then
__rvm_become "$environment_name" || exit 1
fi
convert_to_shell
Jump to Line
Something went wrong with that request. Please try again.