DragonFly On-Line Manual Pages

Search: Section:  


DIRENV-STDLIB(1)                 User Manuals                 DIRENV-STDLIB(1)

NAME

direnv_stdlib - the ".envrc" stdlib

SYNOPSIS

direnv stdlib

DESCRIPTION

Outputs a bash script called the stdlib. The following commands are included in that script and loaded in the context of an ".envrc". Additionnaly to that, it also loads the file in "~/.direnvrc" if it exists.

STDLIB

o has command: Returns 0 if the command is available. Returns 1 otherwise. It can be a binary in the PATH or a shell function. Example: if has curl; then echo "Yes we do" fi o expand_path rel_path [relative_to]: Outputs the absolute path of rel_path relative to relative_to or the current directory. Example: cd /usr/local/games expand_path ../foo # output: /usr/local/foo o dotenv [dotenv_path]: Loads a ".env" file into the current environment o user_rel_path abs_path: Transforms an absolute path abs_path into a user-relative path if possible. Example: echo $HOME # output: /home/user user_rel_path /home/user/my/project # output: ~/my/project user_rel_path /usr/local/lib # output: /usr/local/lib o find_up filename: Outputs the path of filename when searched from the current directory up to /. Returns 1 if the file has not been found. Example: cd /usr/local/my mkdir -p project/foo touch bar cd project/foo find_up bar # output: /usr/local/my/bar o source_env fileordir_path: Loads another ".envrc" either by specifying its path or filename. o source_up [filename]: Loads another ".envrc" if found with the find_up command. o direnv_load [command-generating-dump-output] Applies the environment generated by running argv as a command. This is useful for adopting the environment of a child process - cause that process to run "direnv dump" and then wrap the results with direnv_load. Example: direnv_load opam-env exec -- direnv dump o PATH_add path: Prepends the expanded path to the PATH environment variable. It prevents a common mistake where PATH is replaced by only the new path. Example: pwd # output: /home/user/my/project PATH_add bin echo $PATH # output: /home/user/my/project/bin:/usr/bin:/bin o path_add varname path: Works like PATH_add except that it's for an arbitrary varname. o load_prefix prefix_path: Expands some common path variables for the given prefix_path prefix. This is useful if you installed something in the prefix_path using ./configure --prefix=$prefix_path && make install and want to use it in the project. Variables set: CPATH LD_LIBRARY_PATH LIBRARY_PATH MANPATH PATH PKG_CONFIG_PATH Example: ./configure --prefix=$HOME/rubies/ruby-1.9.3 make && make install # Then in the .envrc load_prefix ~/rubies/ruby-1.9.3 o layout type: A semantic dispatch used to describe common project layouts. o layout go: Sets the GOPATH environment variable to the current directory. o layout node: Adds "$PWD/node_modules/.bin" to the PATH environment variable. o layout perl: Setup environment variables required by perl's local::lib See <http://search.cpan.org/dist/local- lib/lib/local/lib.pm> for more details o layout python [python_exe]: Creates and loads a virtualenv environment under $PWD/.direnv/python-$python_version. This forces the installation of any egg into the project's sub-folder. It's possible to specify the python executable if you want to use different versions of python (eg: layout python python3). Note that previously virtualenv was located under $PWD/.direnv/virtualenv and will be re-used by direnv if it exists. o layout python3: A shortcut for layout python python3 o layout ruby: Sets the GEMHOME environment variable to `$PWD/.direnv/ruby/RUBYVERSION. This forces the installation of any gems into the project's sub-folder. If you're using bundler it will create wrapper programs that can be invoked directly instead of using thebundle exec` prefix. o use program_name [version]: A semantic command dispatch intended for loading external dependencies into the environment. Example: use_ruby() { echo "Ruby $1" } use ruby 1.9.3 # output: Ruby 1.9.3 o use rbenv: Loads rbenv which add the ruby wrappers available on the PATH. o rvm ...: Should work just like in the shell if you have rvm installed.

COPYRIGHT

Copyright (C) 2014 zimbatm <http://zimbatm.com> and contributors under the MIT licence.

SEE ALSO

direnv(1) direnv APRIL 2014 DIRENV-STDLIB(1)

Search: Section: