xenial (1) direnv-stdlib.1.gz

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 (C) 2014 zimbatm ⟨http://zimbatm.com⟩ and contributors under the MIT licence.

SEE ALSO

       direnv(1)