include temp file for attachment change too
parent
dfef51e10e
commit
1a883b3c50
|
@ -619,7 +619,7 @@ sub rcs_receive () { #{{{
|
||||||
|
|
||||||
# Avoid chdir when running git here, because the changes
|
# Avoid chdir when running git here, because the changes
|
||||||
# are in the master git repo, not the srcdir repo.
|
# are in the master git repo, not the srcdir repo.
|
||||||
# The pre-receive hook already puts us in the right place.
|
# The pre-recieve hook already puts us in the right place.
|
||||||
$no_chdir=1;
|
$no_chdir=1;
|
||||||
my @changes=git_commit_info($oldrev."..".$newrev);
|
my @changes=git_commit_info($oldrev."..".$newrev);
|
||||||
$no_chdir=0;
|
$no_chdir=0;
|
||||||
|
@ -643,15 +643,6 @@ sub rcs_receive () { #{{{
|
||||||
elsif ($detail->{'status'} =~ /^[AM]+\d*$/) {
|
elsif ($detail->{'status'} =~ /^[AM]+\d*$/) {
|
||||||
$action="add";
|
$action="add";
|
||||||
$mode=$detail->{'mode_to'};
|
$mode=$detail->{'mode_to'};
|
||||||
if (! pagetype($file)) {
|
|
||||||
eval q{use File::Temp};
|
|
||||||
die $@ if $@;
|
|
||||||
my $fh;
|
|
||||||
($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1);
|
|
||||||
if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) {
|
|
||||||
error("failed writing temp file");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
elsif ($detail->{'status'} =~ /^[DAM]+\d*/) {
|
elsif ($detail->{'status'} =~ /^[DAM]+\d*/) {
|
||||||
$action="remove";
|
$action="remove";
|
||||||
|
@ -670,6 +661,18 @@ sub rcs_receive () { #{{{
|
||||||
error gettext("you are not allowed to change file modes");
|
error gettext("you are not allowed to change file modes");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# extract attachment to temp file
|
||||||
|
if (($action eq 'add' || $action eq 'change') &&
|
||||||
|
! pagetype($file)) {
|
||||||
|
eval q{use File::Temp};
|
||||||
|
die $@ if $@;
|
||||||
|
my $fh;
|
||||||
|
($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1);
|
||||||
|
if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) {
|
||||||
|
error("failed writing temp file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
push @rets, {
|
push @rets, {
|
||||||
file => $file,
|
file => $file,
|
||||||
|
|
|
@ -45,7 +45,7 @@ sub test () { #{{{
|
||||||
$file=IkiWiki::possibly_foolish_untaint($file);
|
$file=IkiWiki::possibly_foolish_untaint($file);
|
||||||
if (! defined $file || ! length $file ||
|
if (! defined $file || ! length $file ||
|
||||||
IkiWiki::file_pruned($file, $config{srcdir})) {
|
IkiWiki::file_pruned($file, $config{srcdir})) {
|
||||||
error(gettext("bad file name"));
|
error(gettext("bad file name %s"), $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
my $type=pagetype($file);
|
my $type=pagetype($file);
|
||||||
|
|
|
@ -837,8 +837,8 @@ files that were changed, in the form:
|
||||||
file => # name of file that was changed
|
file => # name of file that was changed
|
||||||
action => # either "add", "change", or "remove"
|
action => # either "add", "change", or "remove"
|
||||||
path => # temp file containing the new file content, only
|
path => # temp file containing the new file content, only
|
||||||
# needed for "add", and only if the file is an
|
# needed for "add"/"change", and only if the file
|
||||||
# attachment, not a page
|
# is an attachment, not a page
|
||||||
}
|
}
|
||||||
|
|
||||||
The list will then be checked to make sure that each change is one that
|
The list will then be checked to make sure that each change is one that
|
||||||
|
|
Loading…
Reference in New Issue