Deprecated Build.PL file when regenerating Makefile.PL
Andy Grundman [Thu, 24 Nov 2005 00:25:25 +0000 (00:25 +0000)]
lib/Catalyst/Helper.pm
script/catalyst.pl

index 878dc76..6aa714c 100644 (file)
@@ -90,7 +90,7 @@ sub mk_app {
     }
     if ( $gen_makefile ) { 
         $self->_mk_makefile;
-    }    
+    }
     if ( $gen_scripts ) {
         $self->_mk_cgi;
         $self->_mk_fastcgi;
@@ -343,6 +343,13 @@ sub _mk_makefile {
     $self->{path} .= '.pm';
     my $dir = $self->{dir};
     $self->render_file( 'makefile', "$dir\/Makefile.PL" );
+    
+    if ( $self->{makefile} ) {
+        # deprecate the old Build.PL file when regenerating Makefile.PL
+        $self->_deprecate_file( 
+            File::Spec->catdir( $self->{dir}, 'Build.PL' )
+        );
+    }    
 }
 
 sub _mk_readme {
@@ -441,6 +448,28 @@ sub _mk_favicon {
 
 }
 
+sub _deprecate_file {
+    my ( $self, $file ) = @_;
+    if ( -e $file ) {
+        my $oldcontent;
+        print qq/ deprecating "$file"\n/;
+        if ( my $f = IO::File->new("< $file") ) {
+            $oldcontent = join( '', (<$f>) );
+        }
+        my $newfile = $file . '.deprecated';
+        if ( my $f = IO::File->new("> $newfile") ) {
+            binmode $f;
+            print $f $oldcontent;
+            print qq/created "$newfile"\n/;
+            unlink $file;
+            print qq/removed "$file"\n/;
+            return 1;
+        }
+        Catalyst::Exception->throw( 
+            message => qq/Couldn't create "$file", "$!"/ );
+    }
+}    
+
 =head1 HELPERS
 
 Helpers are classes that provide two methods.
index ff1a904..3edd122 100755 (executable)
@@ -76,18 +76,14 @@ contain the following items:
 
 a skeleton README file, which you are encouraged to expand on
 
-=item Build.PL
-
-a C<Module::Build> build script
-
 =item Changes
 
 a changes file with an initial entry for the creation of the application
 
 =item Makefile.PL
 
-an old-style MakeMaker script.  Catalyst uses the C<Module::Build> system so
-this script actually generates a Makeifle that invokes the Build script.
+Makefile.PL uses the C<Module::Install> system for packaging and distribution
+of the application.
 
 =item lib
 
@@ -105,25 +101,24 @@ a directory containing helper scripts:
 
 =over 4
 
-=item C<my_app_create.pl>
+=item C<myapp_create.pl>
 
 helper script to generate new component modules
 
-=item C<my_app_server.pl>
+=item C<myapp_server.pl>
 
 runs the generated application within a Catalyst test server, which can be
 used for testing without resorting to a full-blown web server configuration.
 
-=item C<my_app_cgi.pl>
+=item C<myapp_cgi.pl>
 
 runs the generated application as a CGI script
 
-=item C<my_app_fastcgi.pl>
+=item C<myapp_fastcgi.pl>
 
 runs the generated application as a FastCGI script
 
-
-=item C<my_app_test.pl>
+=item C<myapp_test.pl>
 
 runs an action of the generated application from the comand line.