Sha256: b7ee04f1030773217ddc8762d3baa965fbe67b15f030c6dfda276b56de9b540a

Contents?: true

Size: 1.73 KB

Versions: 1

Compression:

Stored size: 1.73 KB

Contents

#!/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_environments_path/$(__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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rvm-1.0.7 scripts/environment-convertor