Config::Find::Where(3)

NAME
Config::Find::Where - Find locations in the native OS fashion

SYNOPSIS
  use Config::Find::Where;

  my $temp_dir=Config::Find::Where->temp_dir( name => 'my_app',
                                              scope => 'process',
                                              create => 1 );

  my $path=Config::Find::Where->bin_dir( scope => 'app' );
  system $path."/app_helper.exe";

ABSTRACT
Config::Find searches for locations using OS dependant heuristics.

DESCRIPTION
After releasing Config::Find I found much of its code could be reused to also find other interesting things like temporary directories, the script location, etc.

This module adds a public API to all the hidden functionality.

  OPTIONS
As in Config::Find, all the methods in this package accept a common set of options:

name => "name" or "name/more/names"
    specifies the primary application name used to generate the location paths or to search for them.

scope => "user", "global", "app" or "process"
    -

create => 1
    creates any nonexistent directory in the path returned

  METHODS
All the methods in this package are class methods (you don't need an object to call them).

$path=Config::Find::Where->temp_dir(%opts)
    returns a directory path inside a system temporary location. i.e.:

      Config::Find::Where->temp_dir( name =>'hello/world',
                                     scope => 'process',
                                     create => 1 )

    returns something similar to

      '/tmp/jacks/hello/974/world/'

    on unix like systems and

      'C:\Windows\Temp\jacks\hello\974\world'

    on some Windows ones ('jacks' is supposed to be the current user name and '974' the process number).

    The default scope for this method is "user".

$path=Config::Find::Where->bin_dir(%opts)
    returns a place to find/place binary files. The default scope for this method is "app".

    i.e.

     Config::Find::Where->bin_dir()

    returns the path to the directory where binaries are located.

    Note that this directory is not necessarily the same as the one containing the running script. See documentation for "script_dir" below.

$path=Config::Find::Where->var_dir(%opts)
    returns a place to find/place working files.

    The default scope for this method is "app".

$path = Config::Find::Where->lib_dir(%opts)
    returns a place to find/place library files.

    The default scope for this method is "app".

    For instance:

      use lib => Config::Find::Where->lib_dir;

$path = Config::Find::Where->application_dir(%opts)
    returns the application root directory.

$name=Config::Find::Where->script_name()
    returns the name of the running script without any path information

$path=Config::Find::Where->script_full_path()
    returns the name of the script as the absolute full path to it.

$path=Config::Find::Where->script_dir()
    returns the name of the directory containing the current script

Config::Find::Where->create_dir($dir)
    creates directory $dir and any needed parents

Config::Find::Where->create_parent_dir($file)
    recursively creates all the nonexistent parent directories for $file.

Config::Find::Where->helper_path($file, %opts)
    searches for a script, based on the directories given in %opts, which are the same as bin_dir() method.

BUGS
Some Win32 operating systems are not completely implemented and default to inferior modes, but hey, this is a work in progress!!!

Contributions, bug reports, feedback and any kind of comments are welcome.

SEE ALSO
Config::Find

AUTHOR
Salvador Fandiño García, <sfandino@yahoo.com>

CONTRIBUTORS
Barbie, <barbie@missbarbell.co.uk> (some bug fixes and documentation)

COPYRIGHT AND LICENSE
Copyright 2003-2015 by Salvador Fandiño García (sfandino@yahoo.com) Copyright 2015 by Barbie (barbie@missbarbell.co.uk)

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