The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
# See copyright, etc in below POD section.
######################################################################

use lib 'blib/lib';	# Debugging
use Pod::Usage;
use Getopt::Long;

use Dir::Project;
use strict;
use vars qw ($Debug $VERSION);

######################################################################
# configuration

$VERSION = '3.026';

######################################################################
# main

# read command line
Getopt::Long::config ("no_auto_abbrev");
if (!GetOptions (
		 "help"		=> \&usage,
		 "debug"	=> \&debug,
		 "version"	=> sub { print "Version $VERSION\n"; exit(0); },
		 "cat"		=> \&Dir::Project::makefile_cat,  #debug
		 "project"	=> sub{
		   Dir::Project::get_set_all();
		     if (defined $Project) {
			 print "$Project\n";
		     } else {
			 print "%Error:_Project_not_set\n";
		     }
		 },
		 "makefile"	=> \&Dir::Project::makefile,
		 )) {
    die "%Error: Bad usage, try 'project_dir --help'\n";
}
exit(0);

######################################################################

sub usage {
    print "Version $VERSION\n";
    pod2usage(-verbose=>2, -exitval=>2, -output=>\*STDOUT, -noperldoc=>1);
    exit (1);
}

sub debug {
    $Debug = 1;
    $Dir::Project::Debug = 1;
}

######################################################################
######################################################################
######################################################################

__END__

=pod

=head1 NAME

project_dir - Determine and query DIRPROJECT environment variables

=head1 SYNOPSIS

    project_dir --project
    project_dir --makefile

=head1 DESCRIPTION

L<project_dir> reports the status of the Dir::Project variables.  See the
arguments below for what action is to be performed.

=head1 ARGUMENTS

=over 4

=item --project

Print the current project directory path.  Determined based on a project
symlink or the current directory, see L<Dir::Project> for details.

=item --makefile

This option is intended to be called from inside a makefile by
project_dir.mk.  It creates a temporary file with makefile variable
settings and prints its filename.

=item --cat

Print the contents of what --makefile would create.

=item --help

Displays this message and program version and exits.

=item --version

Displays program version and exits.

=back

=head1 ENVIRONMENT

The following environment variables are set by project_dir via the
makefile:

=over 4

=item DIRPROJECT

The directory path to the root of the model.

=back

See L<Dir::Project> for other relevant environment variables.

=head1 DISTRIBUTION

Dir-Project is part of the L<http://www.veripool.org/> free EDA software
tool suite.  The latest version is available from CPAN and from
L<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.

=head1 AUTHORS

Wilson Snyder <wsnyder@wsnyder.org>

=head1 SEE ALSO

L<Dir::Project>, L<project_bin>

=cut

######################################################################