NAME
project_bin - Call a Dir::Project specific program
SYNOPSIS
[program] [program_arguments]
[program] --project_bin-help
# Example script dispatching
cd ~/project1
project_dir --project
/path/to/project1
my_tool my_args.... # Executes project1/.../my_tool
cd ~/project2
project_dir --project
/path/to/project2
my_tool my_args.... # Executes project2/.../my_tool
DESCRIPTION
project_bin is used to call another project specific program under the current project as determined with project_dir.
This program is not usually called directly. Instead project_bin is symlinked as the name of the program to be executed. project_bin then uses that name to determine the program to be called.
This process enables multiple versions of a program to exist in different project directories. The global path only contains a simple non-changing symlink which everyone can share.
EXAMPLE
Assume prog
is to be executed. The shell uses the standard PATH environment variable and finds prog
under $DIRPROJECT_PREFIX/bin/prog. $DIRPROJECT_PREFIX/bin/prog is installed as a simple symlink to project_bin. Thus the shell executes project_bin.
Project_bin then determines the current project and sets the DIRPROJECT environment variable, which has the link to the current project area. See Dir::Project program_bin() for more details.
Project_bin then uses the DIRPROJECT directory in combination with the DIRPROJECT_PATH to search for prog
, the name project_bin was invoked under. prog
is then executed with all of the arguments passed through project_bin.
If project_bin couldn't determine the project or find the binary using DIRPROJECT_PATH, it tries to execute $DIRPROJECT_PREFIX/bin/prog
__notfound which is generally a link to a version of prog
that is the default for when outside a project.
ARGUMENTS
- --debug
-
The debug flag is passed to the application, and also enables debugging messages from project_bin itself.
- --project_bin-debug
-
Strip this flag before passing to the application, and enable debugging.
- --project_bin-help
-
Show this help message and exit.
- ...
-
All other arguments are passed through to the application.
ENVIRONMENT
See Dir::Project for the list of relevant environment variables.
DISTRIBUTION
Dir-Project is part of the http://www.veripool.org/ free EDA software tool suite. The latest version is available from CPAN and from http://www.veripool.org/.
Copyright 2001-2009 by Wilson Snyder. This package is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
AUTHORS
Wilson Snyder <wsnyder@wsnyder.org>