diff options
-rwxr-xr-x | scripts/rewrite2mojo.pl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/rewrite2mojo.pl b/scripts/rewrite2mojo.pl new file mode 100755 index 000000000..42188d739 --- /dev/null +++ b/scripts/rewrite2mojo.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +use 5.10.1; +use strict; +use warnings; + +while (<>) { + my ($cmd, @args) = split /\s+/, $_; + next unless $cmd; + if (lc($cmd) eq "\LRewriteRule") { + my ($regex, $target, $flags) = @args; + $flags //= ''; + next if $flags =~ /E=HTTP/; + my $action = 'rewrite_query'; + if ($flags =~ /R/) { + $action = 'redirect'; + } + say qq{# from line $. of $ARGV}; + say "if (my \@match = \$path =~ m{$regex}s) {"; + say " $action(\$c, q{$target}, \@match);"; + say " return;" if $flags =~ /L/; + say "}"; + } + elsif (lc($cmd) eq "\LRedirect") { + say qq{# from line $. of $ARGV}; + say "if (my \@match = \$path =~ m{$regex}s) {"; + say " $action(\$c, q{$target}, \@match);"; + say " return;" if $flags =~ /L/; + say "}"; + } +} + + |