MCPcopy Index your code
hub / github.com/ekalinin/nodeenv / install_activate

Function install_activate

nodeenv.py:905–981  ·  view source on GitHub ↗

Install virtual environment activation script

(env_dir, args)

Source from the content-addressed store, hash-verified

903
904
905def 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

Callers 1

create_environmentFunction · 0.85

Calls 4

mkdirFunction · 0.85
remove_env_bin_from_pathFunction · 0.85
callitFunction · 0.85
writefileFunction · 0.85

Tested by

no test coverage detected