Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PROJECT_BIN(1)	      User Contributed Perl Documentation	PROJECT_BIN(1)

NAME
       project_bin - Call a Dir::Project specific program

SYNOPSIS
	 [program] [program_arguments]
	 [program] --project_bin-help
	 [program] --project_bin-which
	 project_which [program]

	 # 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.  Alternatively
       the --project_bin-run option may	be used	to specify what	to execute
       directly.

       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.

       Instead of symlinking, you can make a script to call project_bin.  This
       allows the name of the script to	differ from the	name of	the linked
       program,	and also allows	it to work on systems without symlinks.

	 #!/usr/bin/perl -w
	 exec 'project_bin', '--project_bin-run', 'name_of_script', @ARGV;

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.

       --project_bin-run program
	   Specify the program name to be executed.  If	not specified,
	   presumes project_bin	is symlinked, and $0 contains the name of the
	   program to execute.	See the	example	above.

       --project_bin-version
	   Show	program	version	and exit.

       --project_bin-which
	   Instead of running the program, print the resolved path, similar to
	   the "which" program.	 If you	symlink	project_bin to project_which,
	   this	will be	the default action.

       ... 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-2017 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>

SEE ALSO
       Dir::Project, project_dir

perl v5.24.1			  2017-04-26			PROJECT_BIN(1)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | ARGUMENTS | ENVIRONMENT | DISTRIBUTION | AUTHORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=project_bin&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help