[openwrt/openwrt] scripts/download.pl: read file natively

LEDE Commits lede-commits at lists.infradead.org
Sun Oct 27 06:24:52 PDT 2024


ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/65560de58de7a3cde8f960849e3c7c640b9456d8

commit 65560de58de7a3cde8f960849e3c7c640b9456d8
Author: Matteo Croce <teknoraver at meta.com>
AuthorDate: Sun Sep 29 01:01:01 2024 +0200

    scripts/download.pl: read file natively
    
    Read files natively instead of execing /bin/cat.
    
    Signed-off-by: Matteo Croce <teknoraver at meta.com>
    Link: https://github.com/openwrt/openwrt/pull/16784
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 scripts/download.pl | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/scripts/download.pl b/scripts/download.pl
index c6c9b8e56c..9966f9f1e6 100755
--- a/scripts/download.pl
+++ b/scripts/download.pl
@@ -32,6 +32,12 @@ my $download_tool;
 
 $url_filename or $url_filename = $filename;
 
+sub cat {
+	open my $fh, '<', $1 or die "Can't open file $!";
+	read $fh, my $file_content, -s $fh;
+	return $file_content;
+}
+
 sub localmirrors {
 	my @mlist;
 	open LM, "$scriptdir/localmirrors" and do {
@@ -203,7 +209,7 @@ sub download
 		copy($link, "$target/$filename.dl");
 
 		$hash_cmd and do {
-			if (system("cat '$target/$filename.dl' | $hash_cmd > '$target/$filename.hash'")) {
+			if (system("$hash_cmd '$target/$filename.dl' > '$target/$filename.hash'")) {
 				print("Failed to generate hash for $filename\n");
 				return;
 			}
@@ -233,7 +239,7 @@ sub download
 	}
 
 	$hash_cmd and do {
-		my $sum = `cat "$target/$filename.hash"`;
+		my $sum = cat("$target/$filename.hash");
 		$sum =~ /^(\w+)\s*/ or die "Could not generate file hash\n";
 		$sum = $1;
 
@@ -299,11 +305,11 @@ projectsmirrors '@OPENWRT';
 
 if (-f "$target/$filename") {
 	$hash_cmd and do {
-		if (system("cat '$target/$filename' | $hash_cmd > '$target/$filename.hash'")) {
+		if (system("$hash_cmd '$target/$filename' > '$target/$filename.hash'")) {
 			die "Failed to generate hash for $filename\n";
 		}
 
-		my $sum = `cat "$target/$filename.hash"`;
+		my $sum = cat("$target/$filename.hash");
 		$sum =~ /^(\w+)\s*/ or die "Could not generate file hash\n";
 		$sum = $1;
 




More information about the lede-commits mailing list