mirror of
https://codeberg.org/h3xx/simplify_static_dir
synced 2024-08-14 23:57:24 +00:00
Compare commits
No commits in common. "a26764fd2f61ffa32824c7f09dfac78d8a37b6de" and "15829202862ed5bf6cc04aeb9144dedf33912608" have entirely different histories.
a26764fd2f
...
1582920286
9 changed files with 21 additions and 53 deletions
|
@ -8,9 +8,9 @@ Object for abstracting management of a hashed filesystem
|
|||
|
||||
=cut
|
||||
|
||||
# :squash-remove-start:
|
||||
# :squash-ignore-start:
|
||||
require Directory::Simplify::File;
|
||||
# :squash-remove-end:
|
||||
# :squash-ignore-end:
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
|
@ -4,9 +4,9 @@ use strict;
|
|||
use warnings;
|
||||
use overload '""' => 'as_string';
|
||||
|
||||
# :squash-remove-start:
|
||||
# :squash-ignore-start:
|
||||
require Directory::Simplify::Utils;
|
||||
# :squash-remove-end:
|
||||
# :squash-ignore-end:
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
|
@ -6,10 +6,10 @@ use overload '""' => 'as_string';
|
|||
use File::Basename qw/ dirname /;
|
||||
use File::Compare qw/ compare /;
|
||||
|
||||
# :squash-remove-start:
|
||||
# :squash-ignore-start:
|
||||
require Directory::Simplify::Instruction::CopyTimestamp;
|
||||
require Directory::Simplify::Instruction::Hardlink;
|
||||
# :squash-remove-end:
|
||||
# :squash-ignore-end:
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
|
@ -4,9 +4,9 @@ use strict;
|
|||
use warnings;
|
||||
use overload '""' => 'as_string';
|
||||
|
||||
# :squash-remove-start:
|
||||
# :squash-ignore-start:
|
||||
require Directory::Simplify::Utils;
|
||||
# :squash-remove-end:
|
||||
# :squash-ignore-end:
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
|
@ -8,6 +8,6 @@ echo "Outputting to $OUT" >&2
|
|||
shopt -s globstar
|
||||
"$WORKDIR/util/squash" \
|
||||
"$WORKDIR/simplify_static_dir-main.pl" \
|
||||
"$WORKDIR"/lib/**/*.pm \
|
||||
"$WORKDIR"/**/*.pm \
|
||||
> "$OUT"
|
||||
chmod +x -- "$OUT"
|
||||
|
|
|
@ -104,16 +104,16 @@ use File::Find qw/ find /;
|
|||
use Getopt::Std qw/ getopts /;
|
||||
use Pod::Usage qw/ pod2usage /;
|
||||
|
||||
# :squash-remove-start:
|
||||
# :squash-ignore-start:
|
||||
# (this prepends to the load path)
|
||||
use FindBin qw//;
|
||||
use lib "$FindBin::RealBin/lib";
|
||||
use lib $FindBin::RealBin;
|
||||
|
||||
require Directory::Simplify::File;
|
||||
require Directory::Simplify::FileHash;
|
||||
require Directory::Simplify::Instruction::Generator;
|
||||
require Directory::Simplify::Utils;
|
||||
# :squash-remove-end:
|
||||
# :squash-ignore-end:
|
||||
|
||||
sub HELP_MESSAGE {
|
||||
my $fh = shift;
|
||||
|
|
50
util/squash
50
util/squash
|
@ -18,48 +18,17 @@ for my $arg (@ARGV) {
|
|||
warn "Reading $filename\n";
|
||||
open my $fh, '<', $filename or die "Can't open $filename: $!";
|
||||
my $in_pod = 0;
|
||||
my $in_section = '';
|
||||
my $ignore_lines = 0;
|
||||
my $empty_lines = 0;
|
||||
my $in_ignore_section = 0;
|
||||
while (<$fh>) {
|
||||
if (/#.*:squash-ignore-start:$/) {
|
||||
$in_section = 'ignore';
|
||||
$ignore_lines = 1;
|
||||
$in_ignore_section = 1;
|
||||
next;
|
||||
} elsif (/#.*:squash-ignore-end:$/) {
|
||||
$in_section = '';
|
||||
$ignore_lines = 1;
|
||||
}
|
||||
if ($ignore_lines > 0) {
|
||||
$ignore_lines--;
|
||||
$in_ignore_section = 0;
|
||||
next;
|
||||
}
|
||||
|
||||
if ($in_section eq 'ignore') {
|
||||
$empty_lines = 0 unless /^$/;
|
||||
$code .= $_;
|
||||
next;
|
||||
}
|
||||
|
||||
# Remove repeated newlines between paragraphs
|
||||
# (Provided of course we're not in an 'ignore' section)
|
||||
if (/^$/) {
|
||||
++$empty_lines;
|
||||
if ($empty_lines > 1) {
|
||||
next;
|
||||
}
|
||||
} else {
|
||||
$empty_lines = 0;
|
||||
}
|
||||
|
||||
if (/#.*:squash-remove-start:$/) {
|
||||
$in_section = 'remove';
|
||||
next;
|
||||
} elsif (/#.*:squash-remove-end:$/) {
|
||||
$in_section = '';
|
||||
next;
|
||||
}
|
||||
next if $in_section eq 'remove';
|
||||
next if /#.*:squash-remove-line:$/;
|
||||
next if $in_ignore_section;
|
||||
next if /#.*:squash-ignore-line:$/;
|
||||
|
||||
next if /^\s*1;$/;
|
||||
|
||||
|
@ -80,13 +49,12 @@ for my $arg (@ARGV) {
|
|||
s{\s*##.+critic.*}{};
|
||||
$code .= $_;
|
||||
}
|
||||
|
||||
# Warn if there were unterminated :squash-*: sections
|
||||
warn "$filename: Unterminated :squash-$in_section-start: section" if $in_section;
|
||||
|
||||
close $fh;
|
||||
}
|
||||
|
||||
# Remove repeated newlines between paragraphs
|
||||
$code =~ s/\n\n+/\n\n/gs;
|
||||
|
||||
print $code;
|
||||
|
||||
exit 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue