chiark / gitweb /
automatic agpl compliance: fix licence installation to come soon enough
[cgi-auth-flexible.git] / cgi-auth-flexible.pm
index bb359c152ef332858e688f653783e760ca4c4ee4..d4f248ef4d3d884c376bae7e0e736f5dcbe28275 100644 (file)
@@ -253,8 +253,7 @@ sub srcdump_process_item ($$$$$$) {
            }
 #print STDERR "VCS $item $upwards $try GO\n";
            $try =~ m/\w+/ or die;
-           return $v->_ch(('srcdump_byvcs_'.lc $&),
-                          $dumpdir, $upwards, $outfn);
+           return $v->_ch('srcdump_byvcs', $dumpdir, $upwards, $outfn, lc $&);
        }
        $upwards =~ s#/*[^/]+$##;
     }
@@ -278,14 +277,11 @@ sub srcdump_novcs ($$$$$) {
     }
 }
 
-sub srcdump_byvcs_git ($$$$$) {
-    my ($c, $v, $dumpdir, $dir, $outfn) = @_;
+sub srcdump_byvcs ($$$$$$) {
+    my ($c, $v, $dumpdir, $dir, $outfn, $vcs) = @_;
 #print STDERR "BYVCS GIT $dir\n";
-    return srcdump_dir_cpio($c,$v,$dumpdir,$dir,$outfn,'git',"
-                 git ls-files -z
-                 git ls-files -z --others --exclude-from=.gitignore
-                 find .git -print0
-                            ");
+    return srcdump_dir_cpio($c,$v,$dumpdir,$dir,$outfn,$vcs,
+                           $v->{S}{"srcdump_vcsscript_$vcs"});
 }
 
 sub srcdump_file ($$$$) {
@@ -319,7 +315,7 @@ sub srcdump_dir_cpio ($$$$$$$) {
        die $!;
     }
     $!=0; (waitpid $pid, 0) == $pid or die "$!";
-    die "$dir ($script) $outfile $?" if $?;
+    die "$dir ($how $script) $outfile $?" if $?;
 }
 
 sub srcdump_dirscan_prepare ($$) {
@@ -387,6 +383,7 @@ sub srcdump_dirscan_prepare ($$) {
        $dirsdone{$item}++;
     }
     close $reportfh or die $!;
+    srcdump_install($c,$v, $dumpdir, 'licence', 'text/plain');
     $!=0;
     my @cmd = (qw(tar -zvvcf), "$dumpdir/source.tmp",
               "-C", $dumpdir, qw(  --), @srcfiles);
@@ -396,7 +393,6 @@ sub srcdump_dirscan_prepare ($$) {
        die "tar failed";
     }
     die "licence file not found" unless defined $needlicence;
-    srcdump_install($c,$v, $dumpdir, 'licence', 'text/plain');
     srcdump_install($c,$v, $dumpdir, 'source', 'application/octet-stream');
     close $lockf or die $!;
 }
@@ -480,11 +476,17 @@ sub new_verifier {
                $_[2] =~ m#^/etc/|^/usr/(?!local/)(?!lib/cgi)#;
            },
            srcdump_process_item => \&srcdump_process_item,
-           srcdump_vcs_dirs => [qw(.git .hg .svn CVS)],
-           srcdump_byvcs_git => \&srcdump_byvcs_git,
-           srcdump_byvcs_hg => \&srcdump_byvcs_hg,
-           srcdump_byvcs_svn => \&srcdump_byvcs_svn,
-           srcdump_byvcs_cvs => \&srcdump_byvcs_cvs,
+           srcdump_vcs_dirs => [qw(.git .hg .bzr .svn CVS)],
+           srcdump_vcsscript_git => "
+                 git ls-files -z
+                 git ls-files -z --others --exclude-from=.gitignore
+                 find .git -print0
+                            ",
+           srcdump_vcsscript_hg => "false hg",
+           srcdump_vcsscript_bzr => "false bzr",
+           srcdump_vcsscript_svn => "false svn",
+           srcdump_vcsscript_cvs => "false cvs",
+           srcdump_byvcs => \&srcdump_byvcs,
            srcdump_novcs => \&srcdump_novcs,
            srcdump_excludes => [qw(*~ *.bak *.tmp), '#*#'],
            dump => \&dump_plain,
@@ -1320,34 +1322,26 @@ __END__
 
 CGI::Auth::Flexible - web authentication optionally using cookies
 
-=head1 SYNOPSYS
+=head1 SYNOPSYS - STARTUP
 
  my $verifier = CGI::Auth::Flexible->new_verifier(setting => value,...);
  my $authreq = $verifier->new_request($cgi_request_object);
 
- my $authreq = CGI::Auth::Flexible->new_request($cgi_request_object,
-                                              setting => value,...);
-
-=head1 USAGE PATTERN FOR SIMPLE APPLICATIONS
+=head1 SYNOPSYS - SIMPLE APPLICATIONS
 
  $authreq->check_ok() or return;
-
- blah blah blah
+ ...
  $authreq->check_mutate();
- blah blah blah
+ ...
 
-=head1 USAGE PATTERN FOR FANCY APPLICATIONS
+=head1 SYNOPSIS - SOPHISTICATED APPLICATIONS
 
  my $divert_kind = $authreq->check_divert();
- if ($divert_kind) {
-     if ($divert_kind eq 'LOGGEDOUT') {
-        print "goodbye you are now logged out" and quit
-     } elsif ($divert_kind eq 'NOCOOKIES') {
-        print "you need cookies" and quit
-     ... etc.
-     }
- }
-
- blah blah blah
+ if ($divert_kind) { ... print diversion page and quit ... }
+ ...
  $authreq->check_mutate();
- blah blah blah
+ ...
+
+=head1 DESCRIPTION
+
+CGI::Auth::Flexible is a