{"thread":{"id":"20343","subject":"[PATCHv3 2/3] gitweb: support to globally disable a snapshot format","startedAt":"2009-08-02T02:53:22Z","lastAt":"2009-08-02T02:53:22Z","messageCount":1,"participants":["Mark A Rada"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"119365","messageId":"BFCA40C6-A2D8-4BCD-9F9A-57CBC5AFFC6A@uwaterloo.ca","threadId":"20343","inReplyTo":null,"subject":"[PATCHv3 2/3] gitweb: support to globally disable a snapshot format","fromName":"Mark A Rada","fromEmail":"marada@uwaterloo.ca","sentAt":"2009-08-02T02:53:22Z","receivedAt":"2009-08-02T02:53:22Z","isPatch":false,"sender":{"key":"marada@uwaterloo.ca","avatar":"https://avatars.githubusercontent.com/u/38430?v=4"},"body":"I decided to go with the less intrusive change...\n\n\n--\nMark A Rada (ferrous26)\nmarada@uwaterloo.ca\n\n\n--------->8------------\nFrom: Mark Rada <marada@uwaterloo.ca>\nDate: Sat, 1 Aug 2009 13:24:03 -0400\nSubject: [PATCH 2/3] gitweb: support to globally disable a snapshot  \nformat\n\nI added a 'disabled' variable to to the $known_snapshot_formats keys so\nthat a Gitweb administrator can globally enable or disable a specific\nformat for snapshots.\n\nAll formats are enabled by default because project specific overriding\nis disabled by default.\n\nSigned-off-by: Mark Rada <marada@uwaterloo.ca>\n---\n  gitweb/gitweb.perl |    8 ++++++--\n  1 files changed, 6 insertions(+), 2 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex 3398163..04aa7b2 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -160,7 +160,8 @@ our %known_snapshot_formats = (\n  \t# \t'suffix' => filename suffix,\n  \t# \t'format' => --format for git-archive,\n  \t# \t'compressor' => [compressor command and arguments]\n-\t# \t                (array reference, optional)}\n+\t# \t                (array reference, optional),\n+\t# \t'disabled' => boolean (optional)}\n  \t#\n  \t'tgz' => {\n  \t\t'display' => 'tar.gz',\n@@ -502,7 +503,8 @@ sub filter_snapshot_fmts {\n  \t\texists $known_snapshot_format_aliases{$_} ?\n  \t\t       $known_snapshot_format_aliases{$_} : $_} @fmts;\n  \t@fmts = grep {\n-\t\texists $known_snapshot_formats{$_} } @fmts;\n+\t\texists $known_snapshot_formats{$_} &&\n+\t\t!$known_snapshot_formats{$_}{'disabled'}} @fmts;\n  }\n\n  our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || \"++GITWEB_CONFIG++\";\n@@ -5171,6 +5173,8 @@ sub git_snapshot {\n  \t\tdie_error(400, \"Unknown snapshot format\");\n  \t} elsif (!grep($_ eq $format, @snapshot_fmts)) {\n  \t\tdie_error(403, \"Unsupported snapshot format\");\n+\t} elsif ($known_snapshot_formats{$format}{'disabled'}) {\n+\t\tdie_error(403, \"Snapshot format not allowed\");\n  \t}\n\n  \tif (!defined $hash) {\n-- \n1.6.4\n"}]}