AutoYADM commit: 2025-05-13 18:32:14
This commit is contained in:
parent
66a600da48
commit
422a963697
2 changed files with 58 additions and 5 deletions
|
@ -1,5 +1,24 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
# old
|
||||
# use strict;
|
||||
# use warnings;
|
||||
|
||||
# my $Indent = 0;
|
||||
# my $Blank_Lines = 0;
|
||||
# my $Open = qr/[{\[(]$/;
|
||||
# my $Close = qr/^[}\])]/;
|
||||
# while (<>) {
|
||||
# s/^\h*//;
|
||||
# $Blank_Lines++, next if m/^$/;
|
||||
# my $Comment = m/^#/;
|
||||
# $Indent-- if m/$Close/ and not $Comment;
|
||||
# $Blank_Lines = 0, print "\n" if $Blank_Lines;
|
||||
# print "\t" x $Indent, $_;
|
||||
# $Indent++ if m/$Open/ and not $Comment;
|
||||
# }
|
||||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
|
@ -7,12 +26,45 @@ my $Indent = 0;
|
|||
my $Blank_Lines = 0;
|
||||
my $Open = qr/[{\[(]$/;
|
||||
my $Close = qr/^[}\])]/;
|
||||
my $InShell = 0;
|
||||
my $ShellIndent = 0;
|
||||
|
||||
while (<>) {
|
||||
s/^\h*//;
|
||||
$Blank_Lines++, next if m/^$/;
|
||||
|
||||
# Track blank lines
|
||||
if (/^$/) {
|
||||
$Blank_Lines++;
|
||||
next;
|
||||
}
|
||||
|
||||
# Detect start of %sh{
|
||||
if (/^%sh\s*{/) {
|
||||
print "\t" x $Indent, $_;
|
||||
$InShell = 1;
|
||||
$ShellIndent = 0;
|
||||
next;
|
||||
}
|
||||
|
||||
# Detect end of shell block
|
||||
if ($InShell && /^\}/) {
|
||||
$InShell = 0;
|
||||
print "\t" x $Indent, $_;
|
||||
next;
|
||||
}
|
||||
|
||||
if ($InShell) {
|
||||
$ShellIndent-- if /^\s*(?:fi|done|esac|elif|else|elif|;;)/;
|
||||
print "\t" x ($Indent + $ShellIndent), $_;
|
||||
$ShellIndent++ if /\b(?:then|do|case)\b(?:\s*#.*)?$/ or /{\s*$/;
|
||||
next;
|
||||
}
|
||||
|
||||
my $Comment = m/^#/;
|
||||
$Indent-- if m/$Close/ and not $Comment;
|
||||
$Blank_Lines = 0, print "\n" if $Blank_Lines;
|
||||
print "\n" if $Blank_Lines;
|
||||
$Blank_Lines = 0;
|
||||
print "\t" x $Indent, $_;
|
||||
$Indent++ if m/$Open/ and not $Comment;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue