Config::Find::Where - Find locations in the native OS fashion
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";
Config::Find searches for locations using OS dependent heuristics.
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.
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
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.
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.
Config::Find
Salvador Fandiño García, <
[email protected]>
Barbie, <
[email protected]> (some bug fixes and documentation)
Copyright 2003-2015 by Salvador Fandiño García
(
[email protected]) Copyright 2015 by Barbie (
[email protected])
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.