Hi Niels, Niels Thykier <[email protected]> writes: >> sub check_init_script { >> my ($pkg, $info, $file) = @_; >> >> my $lsb_source_seen; >> my $path = $info->index ($file); >> fail "$file is neither a regular file nor a resolvable symlink" >> unless ($path->is_regular_file || defined($path->link_resolved)); >> open(my $fh, '<', $info->unpacked($file)) >> or fail "cannot open $file: $!"; >> >> # … >> } >> >> Does that seem alright to you? >> > > Almost; it definitely plugs the issues I mentioned. That said, I > believe we prefer to emit tags instead of erroring out when we see an > unexpected file type (e.g. see control-file-is-not-a-file). > Secondly, there is a bug in that link_resolved is only applicable to > links. So if it is not a regular file and not a link, the code will > croak in $path->link_resolved[2]. Okay, so how about this?
sub check_init_script {
my ($pkg, $info, $file) = @_;
my $lsb_source_seen;
my $path = $info->index ($file);
unless ($path->is_regular_file ||
($path->is_symlink && defined($path->link_resolved))) {
tag 'init-script-is-not-a-file', $file;
}
open(my $fh, '<', $info->unpacked($file))
or fail "cannot open $file: $!";
# …
}
> It really looks like a implementation of Text::ParseWords's
> shellwords[3]. If so, we can get that entire sub as a oneliner (we
> already use Text::ParseWords elsewhere).
I switched to shellwords. We can always rever to the code we’ve had
before, but in my tests, shellwords works fine.
Find the new files attached.
--
Best regards,
Michael
systemd
Description: Binary data
systemd.desc
Description: Binary data

