[devel] [JT] GroupUserFolder-3.2-alt1.1 lazarus-0.9.22-alt1
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 12 01:39:30 MSD 2007
On Wed, Sep 12, 2007 at 12:08:48AM +0400, Alexey I. Froloff wrote:
> * Alexey Tourbin <at@> [070911 23:46]:
> > #!/bin/sh
> > exec perl -w -x $0 ${1+"$@"} # -*- mode: perl; perl-indent-level: 2; -*-
> > #!perl -w
> Я где-то видел офигенно портабельный перловый шебанг, который
> работает на всех-всех-всех платформах с любым sh и perl.
> Занимает он 12 строк.
Этот вроде сделал.
Всякую фигню maintainer'ы пакуют а мне страдай!
commit 05cd09ba0f8559f835ac770946d673fb4ad887c0
Author: Alexey Tourbin <at на altlinux>
Date: Wed Sep 12 01:32:35 2007 +0400
perl.req: implemented support for "perl -x" re-exec hack (fixes cvs2cl.pl)
$ head -3 cvs2cl.pl
#!/bin/sh
exec perl -w -x $0 ${1+"$@"} # -*- mode: perl; perl-indent-level: 2; -*-
#!perl -wT
$ ./perl.req cvs2cl.pl
/home/at/git.alt/rpm-build-perl/cvs2cl.pl syntax OK
perl(File/Basename.pm)
perl(Text/Wrap.pm)
perl(Time/Local.pm)
$
diff --git a/perl.req b/perl.req
index 1285d2a..485e9c9 100755
--- a/perl.req
+++ b/perl.req
@@ -117,17 +117,35 @@ bad:
sub shebang_options {
my $fname = shift;
open my $fh, $fname or die "$0: $fname: $!\n";
- my $shebang = <$fh>;
- chomp $shebang;
+ local $_ = <$fh>;
my @argv;
- if ($shebang =~ s/^#!\s*\S*perl\S*\s*// && $shebang) {
- local $_ = $shebang;
+ if (s/^#!\s*\S*perl\S*//) {
foreach my $arg (split) {
last if $arg =~ /^#/;
next if $arg eq "--";
push @argv, $arg;
}
}
+ elsif (m[^#!\s*/bin/sh(\s|$)]) {
+ # check for "perl -x" re-exec hack
+ my $maybe_x;
+ while (<$fh>) {
+ # this is just a standard way to re-exec perl:
+ last if /^eval\s+'exec\s/;
+ if (/\bexec\s.*\bperl.*\s-x/) {
+ $maybe_x = 1;
+ }
+ elsif ($maybe_x and s/^#!\s*\S*perl\S*//) {
+ push @argv, "-x";
+ foreach my $arg (split) {
+ last if $arg =~ /^#/;
+ next if $arg eq "--";
+ push @argv, $arg;
+ }
+ last;
+ }
+ }
+ }
return @argv;
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070912/48ff0fb3/attachment-0002.bin>
Подробная информация о списке рассылки Devel