Install virtual environment activation script
(env_dir, args)
| 903 | |
| 904 | |
| 905 | def install_activate(env_dir, args): |
| 906 | """ |
| 907 | Install virtual environment activation script |
| 908 | """ |
| 909 | if is_WIN: |
| 910 | files = { |
| 911 | 'activate.bat': ACTIVATE_BAT, |
| 912 | "deactivate.bat": DEACTIVATE_BAT, |
| 913 | "Activate.ps1": ACTIVATE_PS1 |
| 914 | } |
| 915 | bin_dir = join(env_dir, 'Scripts') |
| 916 | shim_node = join(bin_dir, "node.exe") |
| 917 | shim_nodejs = join(bin_dir, "nodejs.exe") |
| 918 | else: |
| 919 | files = { |
| 920 | 'activate': ACTIVATE_SH, |
| 921 | 'activate.fish': ACTIVATE_FISH, |
| 922 | 'shim': SHIM |
| 923 | } |
| 924 | bin_dir = join(env_dir, 'bin') |
| 925 | shim_node = join(bin_dir, "node") |
| 926 | shim_nodejs = join(bin_dir, "nodejs") |
| 927 | if is_CYGWIN: |
| 928 | mkdir(bin_dir) |
| 929 | |
| 930 | if args.node == "system": |
| 931 | files["node"] = SHIM |
| 932 | |
| 933 | mod_dir = join('lib', 'node_modules') |
| 934 | prompt = args.prompt or '(%s)' % os.path.basename(os.path.abspath(env_dir)) |
| 935 | |
| 936 | if args.node == "system": |
| 937 | path_var = remove_env_bin_from_path(os.environ['PATH'], bin_dir) |
| 938 | for candidate in ("nodejs", "node"): |
| 939 | shim_node = shutil.which(candidate, path=path_var) |
| 940 | if shim_node is not None: |
| 941 | break |
| 942 | assert shim_node, "Did not find nodejs or node system executable" |
| 943 | |
| 944 | for name, content in files.items(): |
| 945 | file_path = join(bin_dir, name) |
| 946 | content = content.replace('__NODE_VIRTUAL_PROMPT__', prompt) |
| 947 | content = content.replace('__NODE_VIRTUAL_ENV__', |
| 948 | os.path.abspath(env_dir)) |
| 949 | content = content.replace('__SHIM_NODE__', shim_node) |
| 950 | content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) |
| 951 | content = content.replace('__MOD_NAME__', mod_dir) |
| 952 | if is_CYGWIN: |
| 953 | _, cyg_bin_dir = callit( |
| 954 | ['cygpath', '-w', os.path.abspath(bin_dir)], |
| 955 | show_stdout=False, in_shell=False) |
| 956 | content = content.replace('__NPM_CONFIG_PREFIX__', cyg_bin_dir[0]) |
| 957 | else: |
| 958 | content = content.replace('__NPM_CONFIG_PREFIX__', |
| 959 | '$NODE_VIRTUAL_ENV') |
| 960 | # if we call in the same environment: |
| 961 | # $ nodeenv -p --prebuilt |
| 962 | # $ nodeenv -p --node=system |
no test coverage detected