On Mon, Feb 14, 2011 at 3:46 AM, <s...@perlide.org> wrote: > Author: adamk > See also: http://padre.perlide.org/changeset/13689 > Date: 2011-02-13 17:46:20 -0800 (Sun, 13 Feb 2011) > New Revision: 13689 > > Modified: > trunk/Padre/Changes > trunk/Padre/lib/Padre/Document.pm > trunk/Padre/lib/Padre/Project.pm > Log: > - Intuit project root from version control checkout directories and > classify them as an ordinary vanilla Padre::Project, before we give up > and treat something as a Null projects (ADAMK) >
> Modified: trunk/Padre/lib/Padre/Project.pm > =================================================================== > --- trunk/Padre/lib/Padre/Project.pm 2011-02-13 16:01:40 UTC (rev 13688) > +++ trunk/Padre/lib/Padre/Project.pm 2011-02-14 01:46:20 UTC (rev 13689) > @@ -37,6 +37,8 @@ > ); > return 'Padre::Project::Null'; > } > + > + # There are several main indicators this is a Perl project > if ( -f File::Spec->catfile( $root, 'Makefile.PL' ) ) { > return 'Padre::Project::Perl'; > } > @@ -46,9 +48,24 @@ > if ( -f File::Spec->catfile( $root, 'dist.ini' ) ) { > return 'Padre::Project::Perl'; > } > + > + # Is this a manually configured explicit Padre project > if ( -f File::Spec->catfile( $root, 'padre.yml' ) ) { > return 'Padre::Project'; > } > + > + # If there are no language-specific indicators, check to see if > + # this directory is (ideally the root of) a version control checkout. > + foreach my $vcs ( '.svn', '.git', '.hg', '.bzr' ) { > + if ( -d File::Spec->catfile($root, $vcs) ) { > + return 'Padre::Project'; > + } > + } > + if ( -f File::Spec->catfile($root, 'CSV', 'Repository') ) { > + return 'Padre::Project'; > + } I get that you can usually conclude project root by .git or .hg and probably .bzr as there is only a single such directory in every repository but .svn and CVS ? They appear in every subdirectory as well. Gabor _______________________________________________ Padre-dev mailing list Padre-dev@perlide.org http://mail.perlide.org/mailman/listinfo/padre-dev