Provided by: direnv_2.7.0-1_amd64 bug

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". In addition, it also loads  the  file  in
       "~/.direnvrc" if it exists.

STDLIB

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

              • 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

              • dotenv [dotenv_path]: Loads a ".env" file into the current environment

              • 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/libfind_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

              • source_env  fileordir_path:  Loads another ".envrc" either by specifying its path
                or filename.

               source_up [filename]: Loads another ".envrc" if found with the find_up command.

              • 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

              • 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:/binpath_add varname path: Works like PATH_add except  that  it's  for  an  arbitrary
                varname.

              • 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.3layout type: A semantic dispatch used to describe common project layouts.

              • layout go: Sets the GOPATH environment variable to the current directory.

              • layout node: Adds "$PWD/node_modules/.bin" to the PATH environment variable.

              • 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

              • 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.

              • layout python3: A shortcut for layout python python3layout     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.

              • 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

              • use rbenv: Loads rbenv which add the ruby wrappers available on the PATH.

              • use nix [...]: Load environment variables from nix-shell.

              If  you  have a default.nix or shell.nix these will be used by default, but you can
              also specify packages directly (e.g use nix -p ocaml).

              See ⟨http://nixos.org/nix/manual/#sec-nix-shell⟩

              • 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)