NAME

lib::gitroot - locate .git root at compile time and use as lib path

SYNOPSIS

use lib::gitroot qw/:set_root/;

Finds git root and export GIT_ROOT function to current package. Will die if called several times from different places.

use lib::gitroot qw/:lib/;

Finds git root, export GIT_ROOT function to current package and adds GIT_ROOT/lib to @INC. Will die if called several times from different places.

use lib::gitroot qw/:set_root :once/;

Same as :set_root, but will not die if called from different places (instead will use first found GIT_ROOT)

use lib::gitroot qw/:lib :once/;

Similar to :set_root :once

use lib::gitroot lib => 'mylib';

Use GIT_ROOT/mylib instead

use lib::gitroot;

Exports GIT_ROOT hoping that it's set previously or will be set in the future

use lib::gitroot ':lib', use_base_dir => "/some/path";

Use some path, instead of caller filename, for searching for git

use lib::gitroot ();
say lib::gitroot::find_git_dir(undef, resolve_symlink => 1); # caller filename, resolve symlink
say lib::gitroot::find_git_dir(); # caller filename
say lib::gitroot::find_git_dir($filename, resolve_symlink => 1); # some filename $filename, resolve symlink

If $filename is a symlink, resolves it (i.e. only top level), finds .git root. Does not alter @INC or GIT_ROOT or anything else

AUTHOR

Victor Efimov <lt>efimov@reg.ru>.

COPYRIGHT AND LICENCE

This software is copyright (c) 2012-2013 by REG.RU LLC

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.